[英]Unit testing a controller throwing exception
我有一个具有以下签名的控制器:
public CustomerTypeController(
IHttpContextAccessor accessor,
IPrincipalProvider provider,
IMapper mapper,
ILogger<CustomerTypeController> logger,
ICustomerTypeService customerTypeService)
{ }
现在我的Theory
看起来像这样:
[Theory, AutoMoqData]
public void GetWhenHasCustomerTypesShouldReturnOneCustomerType(
IFixture fixture,
[Frozen] Mock<ICustomerTypeService> service,
CustomerTypeController sut)
{
//Arrange
var items = fixture.CreateMany<Model.CustomerType>(3).ToList();
//Act
var result = sut.Get(1);
//Assert
Assert.IsType<OkResult>(result);
}
当我按原样运行此测试时,出现以下异常:
AutoFixture.ObjectCreationExceptionWithPath :AutoFixture 无法从 Microsoft.AspNetCore.Mvc.ModelBinding.BindingInfo 创建实例,因为创建意外失败并出现异常。 请参阅内部异常以调查失败的根本原因。
内部异常消息: System.Reflection.TargetInvocationException:调用的目标已抛出异常。 System.ArgumentException:“System.Object”类型必须实现“Microsoft.AspNetCore.Mvc.ModelBinding.IModelBinder”才能用作模型绑定器。 (参数'值')
我做错了什么,我该如何解决问题?
您应该使用 [Greedy] 属性装饰控制器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.