Как проверить «грязный» весенний прикладной контекст? - PullRequest
4 голосов
/ 22 июля 2010

В документации Spring Framework говорится:

В маловероятном случае, если тест может «испачкать» контекст приложения, требующий перезагрузки - например, путем изменения определения компонентаили состояние объекта приложения - поддержка тестирования Spring предоставляет механизмы, позволяющие тестовому устройству перезагружать конфигурации и перестраивать контекст приложения перед выполнением следующего теста.

Может кто-нибудь это уточнить?Я просто не понимаюПримеры были бы хорошими.

1 Ответ

8 голосов
/ 22 июля 2010

Каждый метод тестирования 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, чтобы указать, что метод испытания может изменить состояние бобов, управляемых пружиной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...