Каждый метод тестирования JUnit предполагается изолированным, то есть не имеет побочных эффектов, которые могут привести к тому, что другой метод тестирования будет вести себя по-другому. Это может быть достигнуто путем изменения состояния bean-компонентов, которыми управляет spring.
Например, скажем, у вас есть боб, управляемый пружиной класса MySpringBean
, который имеет строковое свойство со значением "string"
. Следующий метод теста testBeanString
будет иметь другой результат в зависимости от того, вызывается ли он до или после метода testModify
.
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/base-context.xml"})
public class SpringTests {
@Autowired
private MySpringBean bean;
@Test public void testModify() {
// dirties the state of a managed bean
bean.setString("newSring");
}
@Test public void testBeanString() {
assertEquals("string", bean.getString());
}
}
используйте аннотацию @DirtiesContext
, чтобы указать, что метод испытания может изменить состояние бобов, управляемых пружиной.