当我调试代码并使用mockLessonplannerAFactory创建读取行时,我得到错误:
无法为接口模拟传递构造函数参数.
var mockSchoolclassCodeService = new Mock<ISchoolclassCodeService>();
var mockDateService = new Mock<IDateService>();
var mockLessonplannerAFactory = new Mock<ILessonplannerAFactory>(mockDateService.Object);
var mockLessonplannerBFactory = new Mock<ILessonplannerBFactory>(mockDateService.Object);
var service = new TimeTableService(mockUnitOfWork.Object, mockLessonplannerAFactory.Object, mockLessonplannerBFactory.Object, mockSchoolclassCodeService.Object);
Run Code Online (Sandbox Code Playgroud)
我的TimeTableService只接受接口类型的实例.但是mockLessonplannerAFactory和BFactory ......想在他们的构造函数中也传递一个IDateService.
我的代码出了什么问题?
Col*_*kay 14
线索在错误消息"无法为接口模拟传递构造函数参数".
从接口创建的模拟将具有默认构造函数,因为接口没有构造函数.记住你是在嘲笑界面而不是具体的类.
"但mockLessonplannerAFactory和BFactory ......想在他们的构造函数中也传递IDateService."
它们都是从接口模拟的,所以没有构造函数.mock类将创建一个默认构造函数,不需要传递任何东西.