2010-07-22 3 views
4

В spring framework documentation состоянии:Как можно проверить «грязный» контекст весеннего приложения?

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

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

ответ

8

Каждый метод тестирования JUnit предполагается изолированным, то есть не имеет побочных эффектов, которые могут привести к другому методу тестирования. Этого можно достичь, изменив состояние бобы, которым управляет весна.

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

+0

Спасибо, я думаю, я понял это сейчас. – JavaRocky

+1

Привет, вы знаете, есть ли способ ручного вызова контекста dirties? К сожалению, я не могу использовать аннотацию или расширить класс. – AlanFoster

Смежные вопросы