Как провести модульное тестирование с использованием прокладки и статического заводского метода? - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть класс (с защищенным конструктором), который содержит несколько статических фабричных методов.Я использую их, чтобы прояснить, к каким параметрам относятся.Например:

MyClass.FromFile(string filename);
MyClass.FromString(string filename);
MyClass.FromParameterSet(...);

Я использую их, чтобы дать различным методам построения название / значение (я знаю, что будут люди, которые скажут мне не делать этого, но, пожалуйста, давайте просто обсудим это так, радиаргумента).

Однако при юнит-тестировании MyClass у меня возникают проблемы.Я хочу проверить, правильно ли MyClass инициализирует свои внутренние значения, потому что он делает сложные вещи.Конечно, это не разоблачает их.Обычно шим решает проблему, но с помощью статического метода фабрики я не могу создать экземпляр точно так же, как я буду во мне «реальным кодом», потому что он создаст экземпляр MyClass, а не MyShimmedClass.

Очевидный ответ - не использовать статические фабричные методы.Я мог бы сделать это, но мне интересно, есть ли способ исправить это .

(я использую C # на случай, если кому-то интересно.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...