Ответ 1
Каждый метод теста JUnit предполагается изолированным, то есть не имеет побочных эффектов, которые могли бы привести к другому методу тестирования. Это может быть достигнуто путем изменения состояния beans, которым управляет spring.
Например, скажем, что у вас есть bean, управляемый spring класса MySpringBean
, который имеет свойство string со значением "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 pubic void testBeanString() {
assertEquals("string", bean.getString());
}
}
используйте аннотацию @DirtiesContext
, чтобы указать, что тестовый метод может изменить состояние spring управляемого beans.