Дразнить поведение операторов в 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)
}