c# - Constructor arguments cannot be passed for interface mocks -


when debug code , read line mocklessonplannerafactory creation error:

constructor arguments cannot passed 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); 

my timetableservice accepts instances of interface type only. mocklessonplannerafactory , bfactory... want in constructor idateservice passed.

what wrong code?

the clue in error message "constructor arguments cannot passed interface mocks."

the mock created interface have default constructor because interfaces don't have constructor. remember mocking interface not concrete class.

"but mocklessonplannerafactory , bfactory... want in constructor idateservice passed."

they both mocked interfaces, there no constructor. mock class create default constructor doesn't need passed anything.


Comments

Popular posts from this blog

c - How to retrieve a variable from the Apache configuration inside the module? -

python - malformed header from script index.py Bad header -