Do testowania jednostkowego używam NUnit 2.6 i Moq 4.0. Istnieje szczególny przypadek dotyczący wirtualnych członków, w których obiekty proxy Moq nie przekazują wywołań metod do rzeczywistej implementacji (prawdopodobnie według projektu). Na przykład, gdybym miał klasę ...Makiety wirtualnych członków w Moq
public class MyClass {
protected virtual void A() {
/* ... */
}
protected virtual void B(...) {
/* ... */
}
}
... i używam Min przesłonić metodę GetSomethingElse
„s A()
w moim urządzeniu testowym ...
var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);
... używając metoda estetyczna A
działa wspaniale; jednakże, jeśli cokolwiek we wspomnianej metodzie wywołuje niezapowiedziane metody, nie wykona niczego i/lub zwróci wartości domyślne, nawet jeśli rzeczywiste wdrożenie istnieje w MyClass
.
Czy istnieje sposób obejścia tego? Czy używam niewłaściwego Moq?
Dzięki z góry,
Manny
co, jeśli nadal chcesz drwić z innych metod? –
@LouisRhys Całkiem pewne, że to nie przeszkadza - jeśli jawnie kpisz, ustawienie "CallBase" nigdy nie wchodzi w grę. –