6

Spring3.0.4とJUnit4.5を使用しています。私のテストクラスは現在、次の構文でSpringのアノテーションテストサポートを使用しています。

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration (locations = { "classpath:configTest.xml" })
@TransactionConfiguration (transactionManager = "txManager", defaultRollback = true)
@Transactional
public class MyAppTest extends TestCase 

{
 @Autowired
 @Qualifier("myAppDAO")
 private IAppDao appDAO;
    ...
}

このテストを実行するために、 TestCaseを拡張する行は実際には必要ありません。このテストクラスを単独で実行する場合は必要ありません。TestSuiteクラスに追加できるように、extendsTestCaseを追加する必要がありまし

public static Test suite() {
        TestSuite suite = new TestSuite("Test for app.dao");
  //$JUnit-BEGIN$
  suite.addTestSuite(MyAppTest.class);
        ...

extends TestCaseを省略すると、 TestSuiteは実行されません。Eclipseはsuite.addTestSuite(MyAppTest.class)にエラーのフラグを立てます。

Spring 3+テストクラスをテストスイートに追加するにはどうすればよいですか?もっと良い方法があると確信しています。私はグーグルでドキュメントを読みました。あなたが私を信じていないなら、私はあなたにすべての私のブックマークを証拠として送りたいと思っています。しかし、いずれにせよ、私は建設的な答えを好みます。どうもありがとう。

4

1 に答える 1

6

あなたが正しいです; JUnit4スタイルのテストは拡張しないでくださいjunit.framework.TestCase

次のように、JUnit3スイートの一部としてJUnit4テストを含めることができます。

public static Test suite() {
   return new JUnit4TestAdapter(MyAppTest.class);
}

通常、このメソッドをMyAppTestクラスに追加します。次に、このテストをより大きなスイートに追加できます。

 public class AllTests {
   public static Test suite() {
     TestSuite suite = new TestSuite("AllTests");
     suite.addTest(MyAppTest.suite());
     ...
     return suite;
   }
}

Suiteで注釈が付けられたクラスを作成することにより、JUnit4スタイルのスイートを作成できます。

@RunWith(Suite.class)
@SuiteClasses( { AccountTest.class, MyAppTest.class })
public class SpringTests {}

AccountTestこれは、JUnit4スタイルのテストまたはJUnit3スタイルのテストである可能性があることに注意してください。

于 2010-09-11T14:46:27.667 に答える