Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unit testing Moq DbContext抛出Castle.DynamicProxy错误_Unit Testing_Asp.net Web Api_Moq_Xunit_.net Core 2.2 - Fatal编程技术网

Unit testing Moq DbContext抛出Castle.DynamicProxy错误

Unit testing Moq DbContext抛出Castle.DynamicProxy错误,unit-testing,asp.net-web-api,moq,xunit,.net-core-2.2,Unit Testing,Asp.net Web Api,Moq,Xunit,.net Core 2.2,我在.NETCore中有一个服务类,它的承包商应该通过DbContext实例。我正在使用xUnit的Moq和功能。在测试类构造函数中,我得到了Castle动态代理错误 Castle.DynamicProxy.InvalidProxyConstructorArgumentsException HResult=0x80070057 Message=Can not instantiate proxy of class: myApp.Data.Context.SupplierContext

我在.NETCore中有一个服务类,它的承包商应该通过DbContext实例。我正在使用xUnit的Moq和功能。在测试类构造函数中,我得到了Castle动态代理错误

 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()
服务等级 测试班
公共类供应商服务测试
{
私有只读ISupplierService sut;
私有只读Mock mockSupplierContext=new Mock();
公共供应商服务测试()
{
sut=newsupplierservice(mockSupplierContext.Object);//此处获取错误。。。。
}
[事实]
public void GetSuppliers\u应返回所有供应商()
{
//安排
var fixture=新fixture();
var supplierDataMock=fixture.CreateMany(6);
//表演
var actualDataResult=sut.GetSuppliers();
//断言
//等于(supplierDataMock、actualDataResult);
}
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);
    }