可以同时实现WebForms和MVC的最佳模拟框架?
我正在研究更多TDD工作流程,并且混合使用MVC和asp.net Web窗体应用程序。
建议最小起订量用于MVC。
我已经将Rhino用于Web窗体。
有没有人有同时为1个框架模拟的最佳实践?
解决方案
回答
我只是继续使用我最喜欢的框架。我认为我没有理由为Web表单选择一个框架,而为MVC选择另一个框架。更大的问题是我将如何对Web表单页面进行单元测试,因为将页面与HttpRequest堆栈的其余部分分开是非常困难的。
我最喜欢的是起订量。我也用过TypeMock。它花钱,但是它确实非常强大,它可以让我们模拟具体的类和构造函数,因此我们可以模拟HttpContext或者HttpRequest之类的东西。
回答
Rhino的最新版本包含MoQ的大部分甜蜜甜蜜的3.5爱情。我是起订量的粉丝,所以这就是我所使用的。但是我也有Rhino,以防MoQ不能做某事。
TL; DR:起订量,宝贝。
回答
TypeMock具有强大的功能。当我需要对不是为可测性设计的Web表单应用程序进行单元测试时,TypeMock挽救了我的生命。
但是,当我花时间选择一种架构模式(MVC)或者设计一种允许可模拟性的模式(我们知道,公共虚拟化状态更改方法)时,我会使用Moq。它是如此简单易用,而且教别人也如此简单。
TypeMock的记录重播语法仍然让我感到困惑,但是它在紧张的发布时间表中为我节省了很多时间。 Moq的API几乎可以自我解释,考虑到模拟库的历史,这是一个了不起的成就。
回答
这是一个愚蠢的问题,但是我更喜欢Rhino Mocks,因为它代表了对模拟与存根的更完整的理解。
承诺价格之前,请深入研究TypeMock。
另外,没有推荐的ASP.NET MVC模拟框架。
最后,我建议我们在项目(甚至在团队中)中使用一个模拟框架,尽管差异不大,但可能会导致混淆,而这种混淆是不必要的,因为这种"打磨"的决定。就是说,我的决定不应是一个漫长的决定,只需选择可行的方法并继续创造价值。
回答
看看Ivonna是否伪造了HTTPContext和传统的Web表单。
http://sm-art.biz/Ivonna.aspx