ASP.NET MVC3 JsonView
から返されたData
の値をテストしようとしていますが、わかりません。私はJsonの結果をASP.NET MVC3のWebサイトで単体テストできますか?
私は、JsonViewを返すアクションメソッドを備えた単純なASP.NET MVC3ウェブサイトを持っています。
例えば(匿名型のリストについては、いくつかpseduoコード):私のユニットテストで今すぐ
var lotsOfFail = database.GetMeThatDamnDataList();
var returnData = (from x in lotsOfFail
select new
{
Id = x.Id,
Name = x.Name
..
}).ToList();
return Json(returnData, JsonRequestBehavior.AllowGet);
、私はData
の値をテストしようとしています。
// Act.
JsonResult jsonResult = controller.PewPewKThxBai(null, null);
// Assert.
Assert.IsNotNull(jsonResult);
dynamic data = jsonResult.Data;
Assert.IsNotNull(data);
Assert.IsTrue(data.Count >= 0);
しかし、私はまた、データの固定リストに照らして、戻ってきて最初の3つの結果をテストしたい - : だから、次のような種々の提案が、私は...以下のどの-does-仕事をやっています。私は、次のコードを持っているか
お知らせ:var lotsOfFail = database.GetMeThatDamnDataList();
まあは、データベースは、いくつかのハードコーディングされたデータといくつかのランダムなデータが取り込まれます。最初の3つのレコードはハードコードされています。
このように、ハードコードされたデータをテストできることを確認したいと思います。
このよう...
// Assert.
Assert.IsNotNull(jsonResult);
dynamic data = jsonResult.Data;
Assert.IsNotNull(data);
var hardCodedData =
FakeWhatevers.CreateHardcodedWhatevers()
.Where(x => x.EventType == EventType.BannableViolation)
.ToList();
Assert.IsTrue(data.Count >= hardCodedData .Count);
for (int i = 0; i < hardCodedData .Count; i++)
{
Assert.AreEqual(data[0].Id== hardCodedData [0].GameServerId);
}
しかしdata
は動的であるので、私はそれの特性を試験する方法がわかりません。
アイデア?
これは動的なのが第二のものか何かの必要性のためですか?なぜ*方程式の*順序*は物事に影響を与えますか? –
ああブリーフ:私は今、私のエラーを参照してください。私は '=='しかし2つの引数をしてはいけません。乾杯。 –
@ Pure.Krome、注文は何も影響しません。それはただの大会です。あなたの単体テストが失敗したとき、あなたは意味のあるメッセージを得るでしょう: 'expected:1、actual:2'。テストが失敗したときに引数を間違った順序で入れた場合、私のhardCodedDataに2が含まれていると、なぜ地球上で1になるのだろうかと疑問に思うでしょう。 –