Ich möchte Methode A meiner Klasse testen, aber ohne die tatsächliche Methode B aufzurufen, die normalerweise von A aufgerufen wird. Das liegt daran, dass B viele externe Interaktionen hat, die ich jetzt nicht testen möchte.Mock eine Methode des Probanden im Test in Moq?
Ich könnte Mocks für alle von B genannten Dienste erstellen, aber das ist ziemlich viel Arbeit. Ich würde B lieber verspotten und dafür sorgen, dass Beispieldaten zurückgegeben werden.
Ist das mit Moq Framework möglich?
Genau, und es wird am einfachsten sein, wenn die 'virtuelle' Methode' B' entweder 'geschützt intern' oder 'öffentlich' ist. –
Frage: Was ist die Zeile CallBase = true; machen? – Hace
@Hace Wenn ich mich richtig erinnere, teilt es dem Mock-Objekt mit, die Methoden, die in 'MyClass' definiert sind, aufzurufen, es sei denn, ein explizites Setup wird bereitgestellt. Wenn Sie "CallBase = true" nicht aufgerufen haben, würde Moq eine falsche Implementierung jeder virtuellen Methode aufrufen, unabhängig davon, ob eine explizite Konfiguration bereitgestellt wurde. – dcastro