2017-04-26 14 views
0

MVC.NetアプリケーションでJsonResultをユニットテストしようとするとエラーが発生します。私は助けが必要ですMVC.NetサイトのユニットテストJsonResults

私のテストではダイナミックを使用してデータを取得していますが、Assert.AreEqualを実行するとエラーが発生します。

私は間違っていますか?これをどうすれば解決できますか?

私は私のユニットテストでは、私が使用したコードだけでなく、私は(下の画像を参照)を取得していますエラーが含まれている:UNIT TEST

[TestMethod] 
    public void getStatusesInfoTESTTest() 
    { 
     const int statusID = 12; 
     MasterDataController controller = new MasterDataController(); 
     var result = controller.getStatusInfoTEST(statusID) as JsonResult; 
     dynamic data = result.Data; 
     Assert.AreEqual("TESTING 123", data.MasterDataDescription); 
    } 

エラーにUSED

CODEを私がGET:

IMAGE OF ERROR I GET

エラーメッセージ:

型「Microsoft.CSharp.RuntimeBinder.RuntimeBinderException」の例外がSystem.Core.dllで発生したが、ユーザーのコードで、私はBACK GETデータの

画像を処理されませんでしたあなたの助けのための IMAGE OF RETURNED DATA

おかげで、あなたはあなたのコントローラのログを抽出する必要があり mrotor

+1

テスト中のメソッドを表示します。 'getStatusInfoTEST'は具体的なデータか匿名のデータですか? – Nkosi

答えて

0

サービスクラスのいくつかの形式へのic。これによりユニットテストが大幅に簡単になります。

コントローラは、サービスの生の値(おそらくディクショナリやIListなど)を取得し、それをJSONオブジェクトに抽象化するだけに焦点を当てる必要があります。

次に、サービスの単体テストをもっと簡単に行うことができます。

私はいつもあなたのコントローラをユニットテストしていると間違っているという意見がありました。モデルとサービスは単体テストでなければなりません。コントローラは2つのものを結びつけるだけですが、論理が暗黙的なのでテスト可能なものは含めないでください。

これは、レイヤーをデタングルするのに役立ちます。

関連する問題