[英]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.