繁体   English   中英

我需要帮助MVC.Net网站中的单元测试JsonResults

[英]I need help Unit Testing JsonResults in MVC.Net site

我在尝试对MVC.Net应用程序中的JsonResult进行单元测试时遇到错误。

我看到我在测试中使用动态检索数据,但是当我执行Assert.AreEqual时出现错误。

我究竟做错了什么? 我怎样才能解决这个问题?

我已经包含了我在单元测试中使用的代码以及我遇到的错误(请参见下图):

单元测试中使用的代码

   [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);
    }

我得到的错误:

我收到的错误图像

错误信息:

System.Core.dll中发生类型'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException'的异常,但未在用户代码中处理

数据的图像我返回返回的 数据的图像

谢谢您的帮助,mrotor

您应该将控制器的逻辑提取到某种形式的服务类。 这大大简化了单元测试。

控制器应该只专注于获取Service的原始值(可能是字典或IList或其他),并将其抽象为JSON对象。

然后,您可以集中精力轻松地对服务进行单元测试。

我一直认为,如果您要对Controller进行单元测试,那么您做错了。 模型和服务应该经过单元测试,控制器只是将两者绑定在一起,但不应包含任何涉及可测试的内容,因为它们的逻辑是隐式的。

这可以帮助您整理图层。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM