我有一段代碼將在多個集成測試中重複使用。代碼將在測試之前和之後運行。集成測試中的Autowire junit規則
我決定使用JUnit @Rule將是實現此目的的最佳方法。
問題是規則將需要訪問幾個@Autowired spring bean。 (測試與Spring集成測試運行運行,從而自動裝配工作正常
我有一個規則:
public class CustomSpringRule extends ExternalResource {
private final SomeOtherBean;
public CustomSpringRule(SomeOtherBean someOtherBean) {
this.someOtherBean = someOtherBean;
}
@Override
public void before() {
someOtherBean.someMethod();
}
(...)
}
我有我的背景下,我增加了我的豆:
@Bean
public CustomSpringRule getCustomSpringRule(SomeOtherBean someOtherBean) {
return new CustomSpringRule(someOtherBean)
}
最後,我剛纔自動裝配測試文件中的規則豆:
@Autowire
@Rule
public CustomSpringRule customSpringRule
這一切工作正常,但我從來沒有真正我們ed @ Rule註釋,我略微擔心JUnit反射和Spring Autowire不能很好地融合在一起,否則會出現一些初看起來不明顯的問題。
有沒有人有任何建議,這是否有效和安全?
它似乎有點代碼味道有測試,需要按特定順序運行。測試應該是彼此獨立的 –