私は、複数の統合テストで繰り返されるコードを持っています。コードはテストの前後に実行されます。統合テストでのAutowire junitルール
これを達成するためには、JUnit @Ruleを使用することが最適な方法であると判断しました。
問題は、ルールがいくつかの@Autowiredスプリング豆にアクセスする必要があるということです。 。
@Bean
public CustomSpringRule getCustomSpringRule(SomeOtherBean someOtherBean) {
return new CustomSpringRule(someOtherBean)
}
:私は私の豆を追加したために私のコンテキストを持って
public class CustomSpringRule extends ExternalResource {
private final SomeOtherBean;
public CustomSpringRule(SomeOtherBean someOtherBean) {
this.someOtherBean = someOtherBean;
}
@Override
public void before() {
someOtherBean.someMethod();
}
(...)
}
:Autowireが正常に動作しますので、(テストが春の統合テストランナーで実行されている
私はルールを持っています
@Autowire
@Rule
public CustomSpringRule customSpringRule
それはすべてが正常に動作しますが、本当に私は決して私たち:最後に、私はちょうどテストファイル内のルールBeanをautowiredていますJUnitのリフレクションとSpring Autowireがうまくいっていないか、または最初の見た目では明らかでないいくつかの問題があることを少し心配しています。
これが有効で安全かどうかは誰にも示唆がありますか?
特定の順序で実行する必要があるテストを行うには、コードの臭いのようです。テストはお互いに独立しているべきです –