2010-07-22 63 views
4

spring framework documentation狀態:如何測試「髒」的春天的應用程序上下文?

在一個測試可能 「髒」應用程序上下文, 需要重裝較少的情況下 - 例如,通過 改變一個bean定義或應用對象的 狀態 - Spring的測試支持提供了 機制來使測試夾具 重新加載配置,並在 執行下一個測試之前重建應用程序上下文。

有人可以詳細說明嗎?我只是沒有得到它。例子會很好。

回答

8

假定每個JUnit測試方法都是隔離的,即沒有任何副作用可能導致另一個測試方法的行爲不同。這可以通過修改由spring管理的bean的狀態來實現。

例如,假設您有一個由類MySpringBean的彈簧管理的bean,它的字符串屬性值爲"string"。根據在方法testModify之前或之後調用的方法,以下測試方法testBeanString將具有不同的結果。

@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 2010-07-22 07:40:14

+1

嗨,你知道是否有辦法手動調用dirties上下文嗎?我不能使用註釋或者不幸地擴展類。 – AlanFoster 2013-01-29 22:41:31

相關問題