Издевательство над виртуальными членами в Moq

Для модульного тестирования я использую NUnit 2.6 и Moq 4.0. Существует особый случай, связанный с виртуальными членами, когда прокси-объекты Moq не передают вызовы методов фактической реализации (, вероятно, по замыслу ). Например, если бы у меня был класс...

public class MyClass {
    protected virtual void A() {
        /*... */
    }

    protected virtual void B(...) {
        /*... */
    }
}

... и я использую Moq для переопределения метода GetSomethingElseA()в моем тестовом приспособлении...

var mock = new Mock<MyClass>();
mock.Protected().Setup("A").Callback(SomeSortOfCallback);

...использование метода mock Aработает великолепно; однако, если что-то в указанном методе вызовет не -имитированный метод B, метод ничего не сделает и/или вернет значения по умолчанию, даже если в MyClassсуществует реальная реализация.

Есть ли способ обойти это? Я неправильно использую Moq?

Заранее спасибо,
Мэнни

13
задан Manny 9 July 2012 в 08:04
поделиться