8

C# プロジェクトの単体テストを書いています。私がテストしているいくつかのクラスには、次のようなメソッドがあります。

public ClassWithLotsOfProperties doStuffINeedToTest(AnotherClassWithLotsOfProperties input)
{
    //do stuff
}

AnotherClassWithLotsOfPropertiesいくつかのオブジェクトをモックして、最初のオブジェクトが渡されたときにどのClassWithLotsOfPropertiesオブジェクトが期待されるかを確認し、探している結果が得られることを確認して、それらをテストする予定です。現在、私たちのチームは、テストされているクラスが適切に機能していることを確信しているので、プログラムを実行してdoStuffINeedToTest()が呼び出される状態にし、メソッドの最後にブレークポイントを設定して、何が起こっているかを書き留めています。メソッドの入力オブジェクトと出力オブジェクトの状態の内部。

この方法の欠点は、AnotherClassWithLotsOfPropertiesClassWithLotsOfPropertiesの両方に多数のプロパティがあることです。つまり、デバッガーから値を書き留めてから、単体テストでモックを設定するのは面倒です。これらの単体テストをセットアップするより速い方法はありますか? 現在、NUnit と Moq を使用しています。私たちのチームは NUnit に固執したいと考えていますが、私は別のモック フレームワークを検討したいと考えています。

特に、テストのベースにしたいメソッド呼び出しを設定するプログラムを実行するときに、Visual Studio またはモッキング フレームワークで自動的にモック オブジェクトを生成できると便利だと思います。このようなことをする方法はありますか?

4

2 に答える 2

5

AutoFixtureを使用します。これにより、テスト データの生成が非常に簡単になります。次に例を示します。

var testData = fixture.CreateAnonymous<ClassWithLotsOfProperties>();

基本的に、クラスのすべてのプロパティを繰り返し処理し、それぞれにそのタイプの値を設定します。

于 2013-01-16T02:06:21.863 に答える
0

最後に、私は弾丸をかみ砕いて、すべてのダミー データをコードに手動で入力しました。これでテストは終了し、Just Works :3

于 2013-02-25T20:53:56.060 に答える