У меня есть класс, который наследуется от абстрактного базового класса. Я пытаюсь проверить, что указанный защищенный метод в базовом классе вызывается дважды, и я хотел бы убедиться, что переданные параметры являются конкретными значениями (разными для каждого вызова).
Я надеялся, что смогу использовать Protected
с Expect
или Verify
, но, похоже, я упустил, что можно сделать с помощью этих методов.
Возможно ли то, что я пытаюсь сделать с помощью moq?
UPDATE:
Пример того, что я пытаюсь сделать:
class MyBase
{
protected void SomeMethodThatsAPainForUnitTesting(string var1, string var2)
{
//Stuf with file systems etc that's very hard to unit test
}
}
class ClassIWantToTest : MyBase
{
public void IWantToTestThisMethod()
{
var var1 = //some logic to build var 1
var var2 = //some logic to build var 2
SomeMethodThatsAPainForUnitTesting(var1, var);
}
}
По сути, я хочу проверить, как переменные var1 и var2 создаются правильно и передаются в SomeMethodThatsAPainForUnitTesting
, поэтому, по сути, я хочу смоделировать защищенный метод, убедиться, что он был вызван хотя бы один раз и что все параметры прошло правильно. Если бы это вызывало метод в интерфейсе, это было бы тривиально, но я отклеил защищенный метод.
Я не могу легко изменить дизайн, так как это разработка коричневого поля, и я не единственный класс, вызывающий метод.