8
当我调试的代码,并读取与mockLessonplannerAFactory创建行我得到的错误:构造论据接口无法通过嘲笑
Constructor arguments cannot be passed for interface mocks.
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);
我TimeTableService只接受一个接口类型的实例。但mockLessonplannerAFactory和BFactory ...想要在它们的构造函数中传递一个IDateService。
我的代码有什么问题?
是的我刚刚意识到通过删除mockDateService.Object的传递,一切工作正常。 – Elisabeth 2013-03-16 11:57:45
这并不解决真正的问题,你将如何修改模拟设置 – 2016-07-06 20:11:46
mockLessonPlanAFactory和mockLessonPlanBFactory不需要构造函数参数。任何使用通常在具体实现的构造函数中传递的对象的方法或属性本身都是mock方法/属性,并且您将它们设置为返回适当的值(否则您并不真正嘲笑这些对象)。您根据需要设置方法和属性。 – 2016-07-07 13:14:22