2

JUnit3の使用方法を思い出せませんでした.GoogleTestSuiteがこれを見つけた後

public class MyTestsuite extends TestSuite {
    public static Test suite() {
        final TestSuite s = new TestSuite();
        s.addTestSuite(Test1.class);
        s.addTestSuite(Test2.class);
        return s;
    }
}

それはうまくいくようですが、私には非常に奇妙に見えます:

  • 適切なクラスにいるときに新しいインスタンスを作成する必要があるのはなぜですか?
  • 誰がこれをどのように見つけるべきですか?javadocには、 「スイートと呼ばれる静的メソッドを書く」のようなものはありません。
  • 次のような単純なものではないのはなぜですか。

 

public class MyTestsuite extends AbstractTestSuite {
    @Override
    public void suite() {
        add(Test1.class);
        add(Test2.class);
    }
}

基本的に、最初の例のようにそれを行うことが本当に正しい方法であるかどうかに興味があります。さらに、そのようなインターフェースの背後にある設計上の決定は何なのだろうか。


これも機能し、おそらく少し奇妙ではありません。

public class MyTestsuite extends TestSuite {
    MyTestsuite() {
        super(Test1.class, Test2.class);
    }
    public static Test suite() {
        return new TestSuite();
    }
}
4

2 に答える 2