コードを介してプログラムで @ConfigurationContext を取得および変更する方法は?
有効な xml ファイルを含むデフォルト構成があります。
ここで、特定のテスト ケースに無効な構成を追加して、同じものをテストする必要があります。
コードを介してプログラムで @ConfigurationContext をオーバーライド、取得、および変更する方法は?
前もってありがとう、カシール
コードを介してプログラムで @ConfigurationContext を取得および変更する方法は?
有効な xml ファイルを含むデフォルト構成があります。
ここで、特定のテスト ケースに無効な構成を追加して、同じものをテストする必要があります。
コードを介してプログラムで @ConfigurationContext をオーバーライド、取得、および変更する方法は?
前もってありがとう、カシール
免責事項:私のコメントへの返信で別のコメントをしていないので、JUnitを使用していると思います。
あなたがやろうとしていることはあまり意味がないと思います.私の意見では、複数のテストを実行できるようにするために、機能しない構成専用のテストクラスを作成することをお勧めします. でも:
@RunWith(SpringJUnit4ClassRunner.class)
テスト クラスにとで注釈を付けます@ContextConfiguration(locations = {"classpath:/working-context.xml"})
。このようにして、構成コンテキストを 2 つの方法で取得できます。まず、@Inject ApplicationContext context
作業コンテキストを含むフィールドを宣言するだけです。または、テスト クラスimplements ApplicationContextAware
を作成してからpublic void setApplicationContext (ApplicationContext applicationContext)
. プログラムでコンテキストを変更するために手に入るので、2番目のものを選びます。not-working-context.xml
クラスパスに配置しますcontext = setApplicationContext(new ClassPathXmlApplicationContext("not-working-context.xml"));
必要なすべてのエラーをテストします。最終的に、テスト クラスは次のようになります。
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:/working-context.xml"})
public class TestClass implements ApplicationContextAware {
private ApplicationContext context;
public void setApplicationContext(ApplicationContext context){
this.context = context;
}
//Other tests
@Test
public void zFailingTest() {
context = setApplicationContext(new ClassPathXmlApplicationContext("not-working-context.xml"));
//your test
}
}