Мы используем SpringJUnit4ClassRunner
с ContextConfiguration
аннотациями, например, тестирование переднего конца контроллера:Несколько конфигураций в Spring JUnit Test Class
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class FrontEndControllerTest {
private MockMvc mockMvc;
@Autowired
private FrontEndController frontEndController;
@Before
public void init() {
mockMvc = MockMvcBuilders.standaloneSetup(frontEndController).build();
}
@Test
public void shouldDirectToSomeView() throws Exception {
mockMvc.perform(get("/"))
.andExpect(status().isOk())
.andExpect(view().name("someView"));
}
@Configuration
public static class FrontEndControllerTestConfiguration {
@Bean
public FrontEndController defaultController() {
return // init controller
}
@Bean
public SomeConfigObject config() {
return // some config
}
}
}
Теперь я хочу добавить еще один тест с другой конфигурацией в этом же класс. Например, введите макет с операцией сбойной базы данных или или или.
Можно добавить еще один тест, как это (я знаю, не будет компилировать):
@Test
@ContextConfiguration(/* My other configuration */)
public void shouldDoSomeOtherStuff_InvalidConfiguration() {
// ...
}
Весной 4 не представляется возможным, потому что ContextConfiguration
может быть объявлена только аннотацию перед классом. Есть что-то вроде этого весной 4? Вы рекомендуете попробовать другой подход?
Вы не можете. Вы должны создать другой тестовый класс с его собственным контекстом. –
Вы рекомендуете другой подход? – Schrieveslaach
Я могу указать на другой ответ, который я дал, который дает возможность настроить идеальную изоляцию теста (игнорируйте вопрос, мой ответ на самом деле не соответствует): http://stackoverflow.com/questions/33788771/could-not- resolve-placeholder-property-in-integration-test/33788901 # 33788901 –