Этот код является разновидностью кода, используемого в 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
|
@Controllerpublic 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 Джерома Версринга в блоге Технических примечаний .