单元测试xunit以下构造函数参数没有匹配的夹具数据

时间:2019-06-25 12:33:28

标签: c# testing moq xunit

以下构造函数参数没有匹配的夹具数据,可以使用moq和xunit进行单元测试。

已经使用依赖注入和模拟来测试类。

//this is how i register the DI.
services.AddScoped<IWaktuSolatServiceApi, WaktuSolatServiceApi>(); 


 public interface IWaktuSolatServiceApi
 {
    Task<Solat> GetAsyncSet();
 }


// the unit test. 
public class UnitTest1 
{
    Mock<IWaktuSolatServiceApi> waktu;

    public UnitTest1(IWaktuSolatServiceApi waktu)
    {
        this.waktu = new Mock<IWaktuSolatServiceApi>();
    }

    [Fact]
    public async Task ShoudReturn()
    {
        var request = new Solat
        {
            zone = "lala"
        };

        var response = waktu.Setup(x => 
        x.GetAsyncSet()).Returns(Task.FromResult(request));
    }
}

但是我收到此错误以下构造函数参数没有匹配的夹具数据。

1 个答案:

答案 0 :(得分:1)

Xunit没有使用DI来解析引用。

删除构造函数参数。至少在您的代码示例中,它们仍然未被使用。

// the unit test. 
public class UnitTest1 
{
    Mock<IWaktuSolatServiceApi> waktu;

    /// HERE, remove the parameter
    public UnitTest1()
    {
        this.waktu = new Mock<IWaktuSolatServiceApi>();
    }

    [Fact]
    public async Task ShoudReturn()
    {
        var request = new Solat
        {
            zone = "lala"
        };

        var response = waktu.Setup(x => 
        x.GetAsyncSet()).Returns(Task.FromResult(request));
    }
}