如何解决Moq DbContext抛出Castle.DynamicProxy错误
我在.NET Core中有一个服务类,其承包商应与DbContext实例一起传递。我在Moq和Feature中使用xUnit。在测试类的构造函数中,我收到了Castle Dynamic Proxy错误
Castle.DynamicProxy.InvalidProxyconstructorargumentsException
HResult=0x80070057
Message=Can not instantiate proxy of class: myApp.Data.Context.supplierContext.
Could not find a parameterless constructor.
Source=Castle.Core
StackTrace:
at Castle.DynamicProxy.proxygenerator.CreateClassproxyInstance(Type proxyType,List`1 proxyArguments,Type classtoProxy,Object[] constructorarguments)
at Castle.DynamicProxy.proxygenerator.CreateClassproxy(Type classtoProxy,Type[] additionalInterfacesToProxy,proxygenerationoptions options,Object[] constructorarguments,IInterceptor[] interceptors)
at Moq.CastleProxyFactory.CreateProxy(Type mockType,IInterceptor interceptor,Type[] interfaces,Object[] arguments)
at Moq.Mock`1.InitializeInstance()
at Moq.Mock`1.OnGetobject()
at Moq.Mock.get_Object()
at Moq.Mock`1.get_Object()
服务等级
public class supplierService : IsupplierService
{
private readonly supplierContext _context;
public supplierService(supplierContext context)
{
_context = context;
}
....
测试班
public class supplierServiceTest
{
private readonly IsupplierService sut;
private readonly Mock<supplierContext> mocksupplierContext = new Mock<supplierContext>();
public supplierServicetest()
{
sut = new supplierService(mocksupplierContext.Object); // get error here....
}
[Fact]
public void Getsuppliers_ShouldReturnAllsuppliers()
{
//Arrange
var fixture = new Fixture();
var supplierDataMock = fixture.CreateMany<Task<supplier>>(6);
//Act
var actualDataResult = sut.Getsuppliers();
//Assert
//Assert.Equal(supplierDataMock,actualDataResult);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。