Этот код является разновидностью кода, используемого в JUnit Testing Spring Service и DAO (с базой данных в памяти) . Он доступен от Gihut в каталоге Spring-MVC-JUnit-Testing.
Тестовые классы конфигурации
Они идентичны тем, которые требуются для тестирования службы и DAO .
контроллер
Наш контроллер:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
@Controller public class MyController { @Autowired private MyService myService; @RequestMapping (value = '/' ) public String home(Model model) { return 'index' ; } @RequestMapping (value = '/roundtrip' ) public String persistenceStatus(Model model) { MilliTimeItem retr = myService.createAndRetrieve(); model.addAttribute( 'RoundTrip' , retr); return 'roundtrip' ; } } |
Тестирование контроллера
Следующее создает экземпляр MockMvc для тестирования симулированных пользовательских запросов:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
@RunWith (SpringJUnit4ClassRunner. class ) @ContextConfiguration (classes={ JpaTestConfig. class , TestConfig. class }) public class MyControllerTest { private MockMvc mockMvc; @Before public void setup() { mockMvc = MockMvcBuilders .annotationConfigSetup(JpaTestConfig. class , TestConfig. class ) .build(); } @Test public void testHome() throws Exception { mockMvc.perform(get( '/' )) .andExpect(status().isOk()) .andExpect(forwardedUrl( 'WEB-INF/pages/index.jsp' )); } @Test public void testPersistenceStatus() throws Exception { mockMvc.perform(get( '/roundtrip' )) .andExpect(status().isOk()) .andExpect(forwardedUrl( 'WEB-INF/pages/roundtrip.jsp' )) .andExpect(model().attributeExists( 'RoundTrip' )); } } |
Запрос / проверяет возвращенное состояние и сопоставление URL-адреса со страницей JSP. Запрос / roundtrip гарантирует, что возвращаемая модель содержит атрибут Roundtrip.
зависимости
Тестовый артефакт Spring MVC пока недоступен в центральном репозитории maven. Его следует получить из другого хранилища:
1
2
3
4
5
6
|
< repositories > < repository > < id >spring.test-mvc</ id > </ repository > </ repositories > |
Требуемые зависимости:
01
02
03
04
05
06
07
08
09
10
11
12
|
< dependency > < groupId >org.springframework</ groupId > < artifactId >spring-test-mvc</ artifactId > < version >1.0.0.M1</ version > < scope >test</ scope > </ dependency > < dependency > < groupId >org.hamcrest</ groupId > < artifactId >hamcrest-library</ artifactId > < version >1.3</ version > < scope >test</ scope > </ dependency > |
Больше Spring связанных постов здесь .
Ссылка: Spring MVC Controller JUnit Тестирование от нашего партнера JCG Джерома Версринга в блоге Технических примечаний .