1

大規模なデータセットに対する検索の結果であるアイテムの Json エンコードされたリストを返すメソッドをテストしようとしています。

public JsonResult()
{
     List<Stuff> myStuff = new List<Stuff>();
     ListItem item = new ListItem();
     mystuff.Add(item);
     return Json(myStuff, JsonRequestBehaviour.AllowGet);
}

私の問題は、返されたリストの最初の項目しか知らないことです。検索に応じて、毎回異なるリストが生成される可能性があります。

現在、返された最初の項目を「正しい」値と比較するだけでテストしようとしていますが、これは私が望むほど堅牢ではないと思います (たとえば、ほとんどのおそらく次の結果など)。誰かが以前に同様の問題を抱えていましたか?

4

2 に答える 2

0

単体テストでは、予測可能な結果が必要です。JsonResult() 関数をオーバーライドして、テストしている他の関数の場合は常に同じものを返すか、テストする別の URL を用意して、json の結果が常に同じになるようにします。次に、呼び出し元の関数のさまざまな機能/バグをテストするために、それぞれが対象となる複数の json 結果を取得できます。

于 2012-04-04T11:10:31.707 に答える
-1

単体テストの場合、テストの範囲は、テストしている特定のメソッドの機能のみです。

単体テストでは、テストを作成しているメソッドがデータを取得する方法をテストしていません。テストしたいのは、メソッドが想定どおりにデータを処理することだけです。

メソッドが単純に検索結果を返す場合、メソッドを実行すると何らかの検索結果が返されることをテストするだけです。

その場合、返されるデータを準備し、単体テスト中にメソッドが実行されたときに検索メソッドのモック化されたインスタンスにそれを返すように指示します。

メソッドが検索結果に対してそれ以上のことを行う場合は、いくつかの単体テストを記述して、期待どおりに動作することを検証します。

レイヤーが相互に正しく通信し、データがデータベースから正しく返されることをテストする場合は、単体テストではなく統合テストを作成します。

于 2012-04-04T11:47:08.290 に答える