我有以下需要测试的课程。
public ReportViewModel
{
public ReportViewModel()
{
using (var repository = new ExecutionDetailsReportRepository())
{
this._reportData= repository.GetExecutionDetailsReport(testManager.ExecutionDetail.ExecutionId);
}
}
}
构造函数创建一个新的 ExecutionDetailsReportRepository ,这需要被模拟
我的测试方法有这样的模拟设置
var mockExecutionDetailsReportRepository = new Mock<IExecutionDetailsReportRepository>(MockBehavior.Loose);
mockExecutionDetailsReportRepository.Setup(ed => ed.GetExecutionDetailsReport(null)).Returns((List<ExecutionDetailsReport> x) => x).Verifiable();
GetExecutionDetailsReport 需要一个 int? 作为参数类型。我尝试使用 0 或 It.IsAny 进行设置,但我的测试最终还是创建了一个新的 GetExecutionDetailsReport 真实实例,而不是使用 Mocked 实例。
请帮助我了解我的模拟设置有什么问题?我使用最小起订量 4.0