Konstruktorargumente können nicht für Interface-Mocks übergeben werden

8

Wenn ich den Code debugge und die Zeile mit der Erstellung von mockLessonplannerAFactory lese, bekomme ich den Fehler:

  

Konstruktorargumente können nicht für Interface-Mocks übergeben werden.

%Vor%

Mein TimeTableService akzeptiert nur Instanzen eines Schnittstellentyps. Aber die mockLessonplannerAFactory und BFactory ... wollen in ihrem Konstruktor auch einen IDateService übergeben.

Was ist falsch an meinem Code?

    
Elisabeth 16.03.2013, 11:41
quelle

1 Antwort

7

Der Hinweis ist in der Fehlermeldung "Konstruktorargumente können nicht für Schnittstellenmocks übergeben werden."

Der Schein, der von der Schnittstelle erzeugt wird, wird einen Standardkonstruktor haben, weil Schnittstellen keinen Konstruktor haben. Denken Sie daran, dass Sie sich über die Schnittstelle und nicht über die konkrete Klasse lustig machen.

"Aber die mockLessonplannerAFactory und BFactory ... wollen in ihrem Konstruktor auch einen IDateService übergeben."

Sie werden beide von Schnittstellen verspottet, also gibt es keinen Konstruktor. Die Scheinklasse erstellt einen Standardkonstruktor, der nichts übergeben werden muss.

    
Colin Mackay 16.03.2013, 11:45
quelle

Tags und Links