我正在尝试进行返回对象模型的单元测试并失败:
[HttpGet, HttpHead]
[Route("{id}", Name = RouteNames.GetById)]
[ResponseType(typeof(Api.BusinessEvent))]
public async Task<IHttpActionResult> Get(Guid id)
{
return await GetOrStatusCodeAsync(id).ConfigureAwait(true);
}
[TestMethod, TestCategory(Unit)]
public void BusinessEventController_Get_Returns_InternalError()
{
// arrange
var scope = new DefaultScope();
var expectedQuery = new Api.BusinessEvent();
scope.BusinessEventProviderMock
.Setup(x => x.GetAllAsync())
.Throws(new Exception());
// act
var actual = scope.InstanceUnderTest.Get(expectedQuery)
.AssertInternalError(ApiErrors.Generic);
// assert
actual.Should().NotBeNull();
scope.LoggingProviderMock
.VerifyLogApiError(scope.ExpectedLogCategories, ApiErrors.Generic);
}
我在expectedQuery变量上收到此错误:
无法从'Model.BusinessEvent'转换为'System.Guid'
我如何创建查询以使其输入为guid?
我做错了什么以及如何解决?
答案 0 :(得分:1)
鉴于:
Task<IHttpActionResult> Get(Guid id)
并提供了当前示例,您似乎需要从
更改expectedQuery
var expectedQuery = new Api.BusinessEvent();
到变量类型Guid
。
例如:
var expectedQuery = Guid.NewGuid();
示例中的所有其他代码看起来都是特定于您的环境的自定义代码。如果没有Minimal, Complete, and Verifiable example,只需要假设和猜测其他代码的作用。这限制了您可以获得的答案质量。
希望我的观察是准确的,它解决了你的问题。否则你将需要优化你的原始帖子。