12

私は以下を使用するSpringテストを持っています:

@RunWith(SpringJUnit4ClassRunner.class)

Springテスト基本クラスから拡張された古いテスト方法とは異なり、Springが使用してロードされたApplicationContextにアクセスする明確な方法はないようです。@ContextConfiguration

ApplicationContextテストメソッドからオブジェクトにアクセスするにはどうすればよいですか?

ありがとう!

4

3 に答える 3

13

Springドキュメントの統合テストセクションから

@Autowired ApplicationContext

ApplicationContextAwareインターフェースを実装する代わりに、フィールドまたはセッターメソッドの@Autowiredアノテーションを介してテストクラスのアプリケーションコンテキストを挿入できます。例えば:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MyTest {

  @Autowired
  private ApplicationContext applicationContext;

  // class body...
}
于 2013-02-11T23:23:27.830 に答える
3

ApplicationContextの@Autowired属性を追加します

@Autowired ApplicationContext applicationContext;
于 2013-02-11T23:20:35.783 に答える
3

私はこれを使用します:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
@TransactionConfiguration(transactionManager = "transactionManager", defaultRollback = false)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class MyClassTest
{
}

プロジェクトのビルドパスに移動して-> Source ->、の場所を追加しますapplicationContext.xml

私はMavenを使用しているので、applicationContext.xmlは下にありsrc/main/resourcesます。

このメソッドを使用する場合、たとえば次のようにテストするために複数のapplicationContextを持つことができます。

@ContextConfiguration("classpath:applicationContext_Test.xml")

また

@ContextConfiguration("classpath:applicationContext_V01.xml")
于 2013-05-27T10:56:51.907 に答える