36
A
回答
20
Woaw,我是PascalMock项目负责人,它是我第一次听到关于德尔福模拟精灵! PascalMock非常不错。
顺便说一句,你也有一些规模较小的模拟框架:
也许还有周围的一些其他的?
另外PascalMock是开源的,贡献或改进的想法是受欢迎的。
PS:从CVS最新PascalMock版本加入更多功能的1.1版本,如:在运行时
- 自动模拟生成使用RTTI
- 接口允许预期的方法调用任何顺序
- 预期的方法
11
虽然它是稳定的至少x个电话,PascalMock尚未在工作多年的。
有一个新的模拟库叫Delphi Mocks。它只适用于Delphi XE2或更新版本。
2
德尔福模拟向导只生成Pascal模拟向导。它们不是竞争性的实现。
7
尝试Dsharp。这就像Delphi Mocks,但没有内存泄漏。
恕我直言,DSHARP比较好,虽然我最初对Delphi Mocks很兴奋。
5
我们的开源mORMot framework现在能够在其不稳定的版本,以存根或模拟任何Delphi接口。
像往常一样,解释库的功能的最好方法是使用它来查看代码。下面是一个例子(类似于一个附带RhinoMocks)核实,当我们执行“忘记密码”的情况的,大家才想起打电话Save()
方法正确:
procedure TMyTest.ForgotMyPassword;
var SmsSender: ISmsSender;
UserRepository: IUserRepository;
begin
TInterfaceStub.Create(TypeInfo(ISmsSender),SmsSender).
Returns('Send',[true]);
TInterfaceMock.Create(TypeInfo(IUserRepository),UserRepository,self).
ExpectsCount('Save',qoEqualTo,1);
with TLoginController.Create(UserRepository,SmsSender) do
try
ForgotMyPassword('toto');
finally
Free;
end;
end;
和...就是这样,因为当IUserRepository
实例将被释放时将进行验证。
可用功能(有些是唯一的,相较于其他的Delphi嘲笑框架):
- 清除distinction between stubs and mocks,与our Unit Testing classes集成;
- 处理
var
和out
参数作为返回值,除了函数结果; - 通过流畅的接口或委托/回调来存取定义;
- 根据您的测试期望,通过“expect-run-verify”和/或“run-verify”(又名“测试间谍”)模式进行模拟,
- 集成方法调用跟踪;
- 开源,从Delphi 6开始工作到XE3;
- 重量轻,速度快(不要依赖于慢速的TVirtualInterface)。
见相关博客文章:
1
看一看 “Delphi Mocks” 和 “Delphi Mocks: The Basics”
相关问题
- 1. 你最喜欢的Python嘲笑库是什么?
- 2. 你最喜欢的虚线是什么?
- 3. 你最喜欢的数据库相关论坛是什么?
- 4. 你最喜欢的Maven仓库服务器是什么?
- 5. 你最喜欢的Rails管理工具是什么?为什么?
- 6. 你最喜欢的Ruby on Rails书籍是什么?为什么?
- 7. 你最喜欢的Mapping API是什么?为什么?
- 8. <你最喜欢的数据库>最大的缺点是什么?
- 9. 你喜欢什么,你对Scrum过程有什么不喜欢的?
- 10. 嘲笑是做什么的?
- 11. 你最喜欢的c/C++开发的eclipse插件是什么?
- 12. 什么是你最喜欢的颠覆技巧和窍门
- 13. 你最喜欢的Mootools/Prototype原生对象原型是什么?
- 14. 你最喜欢在djangoapp中测试javascript的方法是什么?
- 15. 你最喜欢的低级剖析工具是什么?
- 16. 你最喜欢的源格式工具是什么?
- 17. 你最喜欢的UITableView相关资源是什么?
- 18. 你最喜欢的WordPress主题框架是什么?
- 19. 你最喜欢的VS 2008快捷键是什么?
- 20. 你最喜欢的WPF控件是什么?
- 21. 什么是你最喜欢的mootools小部件和插件
- 22. 你最喜欢的异步模式是什么?
- 23. 你最喜欢的LogParser脚本是什么?
- 24. 什么是你最喜欢的新功能在asp.net 3.5?
- 25. 你最喜欢的Bash提示是什么?
- 26. 你最喜欢的Emacs插件是什么?
- 27. 你最喜欢做MITM的方式是什么?
- 28. 你最喜欢的Eclipse插件是什么?
- 29. 你如何嘲笑你的知识库?
- 30. 您最喜欢的Powershell Cmdlet是什么?