我是新手,对单元测试和依赖注入不太熟悉,在使用依赖注入的类中调用一个方法时,找不到简单的方法。
这是我的类
public class AgentProvisioningServiceHelpher : IAgentProvisioningServiceHelpher
{
private readonly IExcelParser _excelParser;
private readonly SupervisorDbContext _SupervisorDbContext;
private readonly SchedulerNoTrackingDbContext _SchedulerDbContext;
// constructor
public AgentProvisioningServiceHelpher(IExcelParser excelParser, SupervisorDbContext supervisorDbContext, SchedulerNoTrackingDbContext SchedulerDbContext)
{
_excelParser = excelParser;
_SupervisorDbContext = supervisorDbContext;
_SchedulerDbContext = SchedulerDbContext;
}
// Function that I want to call in unit test
public int SimpleMethodToTest(int InputId)
{
return InputId + 1;
}
}
这是我的接口代码
public interface IAgentProvisioningServiceHelpher
{
int SimpleMethodToTest(int InputId);
}
这是我的单元测试代码,我正在使用 Xunit。
public class UnitTest1
{
private IAgentProvisioningServiceHelpher _sut;
private IExcelParser _excelParser;
private SupervisorDbContext _DBcontext1;
private SchedulerNoTrackingDbContext _DBcontext2;
public UnitTest1(IExcelParser excelParser, SupervisorDbContext DBcontext1, SchedulerNoTrackingDbContext DBcontext2, IAgentProvisioningServiceHelpher sut)
{
_excelParser = excelParser;
_DBcontext1 = DBcontext1;
_DBcontext2 = DBcontext2;
_sut = sut;
}
[Fact]
public void SimpleMethodToTest_Shall_ReturnPlus1()
{
// Arrange
int Input_Int = 1;
// Act
// I try to tell the interface to map with the class I want to test
IAgentProvisioningServiceHelpher _sut = new AgentProvisioningServiceHelpher(_excelParser, _DBcontext1, _DBcontext2);
// Then I try to call the interface method
var result = _sut.SimpleMethodToTest(Input_Int);
// Assert
Assert.Equal(2, result);
}
}
当我尝试运行测试时,Visual Studio 报告以下错误 - 我应该如何解决?
UnitTest1.cs 第33行
下面的构造函数参数没有匹配的装置数据:IExcelParser excelParser、SupervisorDbContext DBcontext1、SchedulerNoTrackingDbContext DBcontext2、IAgentProvisioningServiceHelpher sut