Использование Moq для проверки выполнения частных методов

Я хочу протестировать следующую логику (это, очевидно, урезанная версия моего метода):

public void myPublicMethod(params) {

    if(some_condition)
        privateMethod1();
    else
        privateMethod2();
} 

У меня есть макеты всех других зависимостей в методе, и я установил это вверх, чтобы я мог гарантировать, что some_condition истинно. Я хочу убедиться, что мой privateMethod1 () вызывается ровно один раз, а privateMethod2 () вообще не вызывается. Возможно ли это сделать с помощью Moq?

Вот несколько замечаний по проблеме:

  • privateMethod1 () и privateMethod2 () находятся в том же классе, что и myPublicMethod, поэтому я не могу создать фиктивный объект для этого класса.
  • Тела privateMethod1 / 2 содержат много-много зависимостей от класса, который их содержит, и myPublicMethod, поэтому выделение privateMethod1 / 2 в их собственный вспомогательный класс потребует слишком много времени.

Есть мысли? Заранее спасибо. Я готов согласиться с тем, что это невозможно, но я хотел бы знать так или иначе.

5
задан PianoFighter88 27 July 2011 в 17:15
поделиться