asp.net-mvc – 如何单元测试MSTest中的JsonResult和集合

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 如何单元测试MSTest中的JsonResult和集合前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
即使我已经编码了很长时间,我非常新的单元测试。我想让这成为我发展方式的一部分。我碰到了如何单元测试像收藏的东西。我通常有我的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);

猜你在找的asp.Net相关文章