JUnit 3のTestCaseから継承されたTestクラスで内部クラスを定義するときに、いくつかの問題が発生します。シナリオは次のようになります。
Foo.java
public class Foo {
public void method() { ... }
}
FooTest.java
public class FooTest extends TestCase {
public class Bar extends Foo {
public void method() { ... }
}
public void testMethod() { ... }
}
これをEclipseから実行すると、テストは正常に実行されますが、Antタスクから実行しようとすると失敗します。
[junit] junit.framework.AssertionFailedError:クラスFoo $ BarにはパブリックコンストラクターTestCase(String name)またはTestCase()がありません
Barはテストクラスではありません。テスト時に実際の処理を行う必要がないメソッドをオーバーライドするFooのサブクラスにすぎません。
私は今のところかなり迷っていて、この問題にどのように取り組むべきかわかりません。サブクラスをスタンドアロンとして作成する唯一の方法はありますか?