0

テスト対象と同じソース ファイルに単体テストを記述したい (D http://dlang.org/unittest.htmlでできるように)。

また、専用のテスト ファイルを使用して通常行うように、Eclipse でテストを実行できるようにしたいと考えています。

この例では、公開されているゼロ引数のコンストラクターがない場合に Junit が文句を言います。

public class Dummy {
    private String _name;

    public Dummy(String name) {
        _name = name;
    }

    public String name () {
        return _name;
    }

    @Test
    public void testName() throws Exception {
        assertEquals("dummy", new Dummy("dummy").name());
    }
}

テストメソッドを「実際の」ソースコードに入れ、テストを実行できるようにする方法(つまり、引数なしのコンストラクターの制限をだます方法)に関する提案はありますか?

ありがとう

4

5 に答える 5

1

特定のクラス/メソッドのテストを作成するのではなく、実装したい機能のテストを作成することを目的とする従来の TDD (Kent Beck の著書「Test Driven Development By Example」に基づく) を考えることができます。

このように、本番クラスにテストを入れることは本当に意味がありません。

于 2013-09-25T12:00:45.423 に答える
0

JUnit では同じクラスにテスト メソッドを配置することはできません。また、非常に奇妙な設計上の選択でもあります。ゼロ引数のコンストラクターがあれば可能ですが、それでもテスト クラスはテスト対象のクラスではありません。ただし、同じファイル内にテスト クラスを作成して、テスト ケースを実行することができます。

于 2013-09-25T11:53:55.740 に答える
0

JUnit テストを同じクラス内に配置したい場合は、パラメーターなしで 2 つ目のコンストラクターを作成できます。それにもかかわらず、これは Java の規則に従って行う方法ではありません。

また、不要なテスト ケース (クラスが行うべき実際のタスクには不要) でクラスを肥大化させます。テストケースを別のクラスに入れるのが良くない場合は、考えてみてください。

于 2013-09-25T11:59:54.543 に答える
0

JUnit のデフォルトのBlockJUnit4ClassRunnerを使用する代わりに、独自のRunnerを作成できます。助けが必要な場合はお知らせください。

于 2013-09-26T18:02:13.500 に答える