4
的spring framework documentation狀態:如何測試「髒」的春天的應用程序上下文?
在一個測試可能 「髒」應用程序上下文, 需要重裝較少的情況下 - 例如,通過 改變一個bean定義或應用對象的 狀態 - Spring的測試支持提供了 機制來使測試夾具 重新加載配置,並在 執行下一個測試之前重建應用程序上下文。
有人可以詳細說明嗎?我只是沒有得到它。例子會很好。
的spring framework documentation狀態:如何測試「髒」的春天的應用程序上下文?
在一個測試可能 「髒」應用程序上下文, 需要重裝較少的情況下 - 例如,通過 改變一個bean定義或應用對象的 狀態 - Spring的測試支持提供了 機制來使測試夾具 重新加載配置,並在 執行下一個測試之前重建應用程序上下文。
有人可以詳細說明嗎?我只是沒有得到它。例子會很好。
假定每個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
註釋以指示該測試方法可改變彈簧管理豆的狀態。
謝謝,我想我現在得到它。 – JavaRocky 2010-07-22 07:40:14
嗨,你知道是否有辦法手動調用dirties上下文嗎?我不能使用註釋或者不幸地擴展類。 – AlanFoster 2013-01-29 22:41:31