即使我已经编码了很长时间,我非常新的单元测试。我想让这成为我发展方式的一部分。我碰到了如何单元测试像收藏的东西。我通常有我的jQuery脚本调用ASP.Net服务器端方法来获取数据和填充表等。他们看着像是
Get_*Noun*()
这通常返回一个JsonResult。使用MSTest进行单元测试的任何想法以及如何测试这些?
解决方法
您应该可以像其他任何东西一样测试,只要您可以从JsonResult中提取值。这是一个帮助你的人:
private T GetValueFromJsonResult<T>(JsonResult jsonResult,string propertyName) { var property = jsonResult.Data.GetType().GetProperties() .Where(p => string.Compare(p.Name,propertyName) == 0) .FirstOrDefault(); if (null == property) throw new ArgumentException("propertyName not found","propertyName"); return (T)property.GetValue(jsonResult.Data,null); }
然后像往常一样调用控制器,并使用该帮助程序测试结果。
var jsonResult = yourController.YourAction(params); bool testValue = GetValueFromJsonResult<bool>(jsonResult,"PropertyName"); Assert.IsFalse(testValue);