【发布时间】:2020-03-10 08:43:49
【问题描述】:
我正在尝试从对控制器的调用中检查 HttpStatusCode,但我不知道如何将我的 ActionResult<T> 转换为 HttpStatusCodeResult。
来自控制器的方法:
[Get]
public async Task<ActionResult<PagedResult<PersoDemandLiteResponse>>> GetDemandsByFilterAsync([FromQuery] DemandFilterRequest filter)
=> await this.GetAsync(() => DemandService.GetDemandByFilterAsync(filter), (sources) => sources);
这是我的测试方法(简化):
... mocking of the services ...
var controller = new DemandController(demandService, organizationService.Object, productService.Object, Mapper.Object);
var request = new DemandFilterRequest { OrganizationId = Guid.NewGuid() };
var result = await controller.GetDemandsByFilterAsync(request);
//I would like to do something like this
var action = result as HttpStatusCodeResult;
var badRequest = (int)HttpStatusCode.BadRequest;
Assert.Equal(badRequest, action.StatusCode);
但我收到以下错误:
错误 CS0039 无法通过引用转换、装箱转换、拆箱转换、包装转换或空类型转换将类型“Microsoft.AspNetCore.Mvc.ActionResult>”转换为“System.Web.Mvc.HttpStatusCodeResult”。
关于如何实现这一点的任何想法?
【问题讨论】:
标签: c# unit-testing asp.net-core .net-core asp.net-core-webapi