【发布时间】:2021-12-30 08:02:13
【问题描述】:
测试方法总是失败。在Setup 之后,UpdateAsync 方法应该在结果中返回 1,但它始终保持为 0,这会导致控制器方法出现异常。
你能告诉我这里缺少什么吗?
[Test]
public async Task UpdateImportHeaderAsyncTest()
{
//Arrange
HeaderRequest request = new HeaderRequest()
{
ConfigurationId = 1,
Key = "1",
Status = 1
};
_manager.Setup(a => a.UpdateAsync(_mockData.Header)).Returns(Task.FromResult(1));
//Act
var actual = await Controller.UpdateHeaderAsync(request);
//Assert
Assert.NotNull(actual);
}
//Controller Method
[HttpPut]
public async Task<int> UpdateHeaderAsync(HeaderRequest request)
{
var result = 0;
try
{
result = await _manager.UpdateAsync(new Header()
{
HeaderId = request.Id,
Status = request.Status,
ConfigurationId = request.ConfigurationId
});
if (result == 0)
{
throw new RecordNotFoundException("No records found.", "1", "");
}
}
catch (Exception ex)
{
throw;
}
return result;
}
【问题讨论】:
-
你曾经嘲笑过 HTTPContext.Current.request 吗??
标签: unit-testing moq c#-3.0 controller-tests