如何在ASP.NETMVC中测试时访问JsonResult数据我在C#mvc控制器中有这样的代码:){if(runId==""||runId==null){returnthis.Json(new{error="Nulloremptyparams"});}try{intuserId=(int)Session["UserId"];intrun=Convert.ToInt32(runId);CloudMgrcloud=newCloudMgr(Session);cloud.DeleteRun(userId,run);返回this.Json(new{success=true});}catch(Exceptionex){returnthis.Json(new{error=ex.ToString()});我如何访问ControllerTest中的Json“错误”字段以检查它是否为空?[测试方法]publicvoidDeleteWrongParam(){WhatIfControllercontroller=newWhatIfController();controller.ControllerContext=TestUtils.CreateMockSessionControllerContext().ObjectasControllerContext;JsonResult结果=controller.DeleteWhatIf(null)作为JsonResult;断言.IsNot.error);是我想做的。有任何想法吗?谢谢。您可以这样使用-结果将是预期的对象定义。因此,如果成功,您的成功标志将为TRUE,否则为false,如果为false,您应该期望error属性将使用错误消息进行更新。JsonResultjsonResult=oemController.List()asJsonResult;JavaScriptSerializer序列化器=newJavaScriptSerializer();结果result=serializer.Deserialize(serializer.Serialize(jsonResult.Data));公共类结果{publicboolsuccess;公共字符串错误;}erJavaScriptSerial适用于字符串和静态类型。在这里,您将匿名类型创建为Json(new{success=true})。在这种情况下,您最好使用动态类型。JsonResult结果=controller.DeleteWhatIf(null)作为JsonResult;动态结果=result.Data;Assert.IsTrue(dresult.succes);您需要导入Microsoft.CSharpdll来测试项目。如果测试和控制器在不同的程序集中,你需要让测试组件成为控制器组件的“朋友”,像这样:[assembly:InternalsVisibleTo("testprojectassemblyname")]如果你返回一个不是实际上是匿名类,你可能刚刚完成:varstrongTypedResult=resultas;以上就是C#学习教程:在ASP.NETMVC中测试时如何访问JsonResult数据分享的全部内容,如果对大家有用还需要了解更多关于C#学习教程,希望大家多多关注对吧——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
