2

JUnitとの統合テストを行っています。注入したいいくつかのテンプレートエンティティを宣言するxmlファイルがあります。すべてのテストで、新しいアプリケーション コンテキストが必要です。つまり、他のテストに依存したり結合したりするテストはありません。そのため、setUp()これらのエンティティをデフォルトの開始値で「再初期化」する必要があります。

リロードで達成できますが、この方法では@Autowired注釈を使用できません。

@Before
public void setUp(){        
    ApplicationContext ctx = new ClassPathXmlApplicationContext("classpath:entityTemplates-Context.xml");
    homeA = (Home)ctx.getBean("homeA");
}

@Autowiredこれを行い、これらのエンティティを引き続き使用する方法はありますか?

4

2 に答える 2

2

統合テストに対する Spring のサポートを見たことがありますか?

http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/testing.html

私のチームは、Spring コンテナが必要な統合テストにこれを使用しています。テストごとに新しいコンテキストを取得しますが、これによりテストが大幅に遅くなります。

于 2012-03-16T09:52:36.537 に答える
0

次のように手動で行うこともできます。

  ...
  @Autowired
  HomeA homeA;

  @Before
  public void setUp() {
    // configures this test instance as a regular spring bean
    ctx.getAutowireCapableBeanFactory().autowireBean(this);

    // here homeA is available
  }
  ...
于 2013-07-18T10:23:23.440 に答える