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