Существуют ли бесплатные фреймворки, позволяющие имитировать не виртуальные, статические или запечатанные методы и классы? - PullRequest
3 голосов
/ 08 октября 2010

Я знаю, что есть TypeMock и JustMock, но оба являются коммерческими продуктами и довольно дорогими.Существуют ли фреймворки с открытым исходным кодом или с открытым исходным кодом, которые могут конкурировать с этими двумя?

Я постоянно использую Moq, но мне интересно, может ли открытый код наверстать упущенное?Возможно, Moles является ответом (http://msdn.microsoft.com/en-us/library/ff798506.aspx),, хотя он не предоставляет всех типичных функций, которые вы ожидаете, или, возможно, кто-то уже работает над чем-то вроде этого http://www.testingreflections.com/node/view/8562

1 Ответ

2 голосов
/ 12 октября 2010

AFAIK, MS Moles может сделать все, что вам когда-либо нужно. Это всего лишь то, что он довольно требователен к производительности и имеет довольно сложный для изучения «API» (что в итоге делает его гораздо более дорогим, чем его коммерческие аналоги!).

Изоляционные фреймворки, такие как Typemock, JustMock и Moles, имеют совершенно иную техническую базу по сравнению со свободными фальшивыми фреймворками, такими как Rhino, Moq и т. Д. Таким образом, их нельзя сравнивать. Для создания TDD в новом проекте вы используете фальшивый фреймворк, если у вас есть необходимые навыки проектирования программного обеспечения (в основном S.O.L.I.D). Вы используете изолированную среду, если вам нужно писать тесты для унаследованного кода, который не был написан с учетом тестирования.

Я не думаю, что когда-либо будет проект с открытым исходным кодом для инфраструктуры изоляции. Технически очень сложно понять это правильно, и очень маловероятно, что он когда-либо сможет догнать, например. Typemock с точки зрения экономической эффективности .. (И кстати: Кроты не ОС и никогда не будут ...)

Thomas

...