以下构造函数参数没有匹配的夹具数据,可以使用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));
}
}
但是我收到此错误以下构造函数参数没有匹配的夹具数据。
答案 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));
}
}