Дразнить поведение операторов в Moq C#

Надеюсь, вы хорошо.

Я нахожусь в процессе создания некоторых тестов с использованием Moq в C#. У одного из объектов, над которыми я работаю, переопределены операторы ==, > и <.

Кто-нибудь знает, возможно ли это, и если да, то как... настроить объект Mock для репликации этого. Причина, по которой я спрашиваю, состоит в том, что я пытаюсь внедрить поддельную заглушку как какой-то устаревший код, который мне дали, который имеет глубокие и грязные зависимости.

Ваше время ценится

Спасибо

1 ответ

Решение

Когда вы переопределяете такие операции, вы также должны предоставлять их именованные эквиваленты. Если вы переделаете свой код таким способом, вам будет легче его высмеивать.

public static bool operator ==(SomeType a, SomeType b)
{
    return a.Equals(b);
}

public virtual bool Equals(SomeType b)
{
   // yours logic here
   return base.Equals(b)
}
Другие вопросы по тегам