【发布时间】:2021-11-20 08:12:41
【问题描述】:
我正在使用 MS Test 对我的 Web API 控制器进行单元测试。
下面是我的 Web API 控制器方法,返回类型:
public IHttpActionResult MethodName(){ //Code logic
return Ok(new { Data = result, Total = (result.Count() > 0 ? result.First().TotalCount : 0) });
}
在上面的代码sn-p中:
- 数据类型为 IEnumerable
- Total Count 是 Int 类型
现在测试上面的 API 方法返回类型是我尝试过的:
[TestMethod]
public void TestMethodName(){
var result = controller.MethodName();
//Below line is having issue and thus the contentResult is null
var contentResult = result as OkNegotiatedContentResult<List<ViewModelName>>;
}
将 Int 添加到 OkNegotiatedContentResult 会引发错误,因为它仅排除单个参数
以下是 API 的实际返回类型:
{System.Web.Http.Results.OkNegotiatedContentResultf__AnonymousType0
我应该如何转换结果以便我可以将其内容用于 Assert ?
提前谢谢你。 代码示例表示赞赏。
【问题讨论】:
-
看看我这里给的答案stackoverflow.com/a/42718643/5233410
-
@NKosi 看起来不错,但我没有异步任务
标签: c# unit-testing asp.net-web-api mstest