我试图用TDD开发我的第一个项目。在这种情况下,我必须在我的应用程序代码之前编写测试用例。在我的测试案例中,我有一些模拟对象。我想知道模拟对象的期望是否也必须在代码创建之前编写。如果确实如此,我该如何实现这一目标?我怎样才能想象在写真代码之前必须调用的方法? (我使用的是JUnit和JMock的JAVA)测试驱动开发 - 模拟对象
2
A
回答
3
这正是TDD的工作原理。你根据你的规范编写测试:你想让被测试的类与它的依赖关系(模拟对象)做什么。在编写时,通过在您正在模拟的接口上添加方法来进行编译(默认实现不会返回任何内容)。然后你可以进行单元测试(使用模拟)。当所有测试都通过时,您可以继续为依赖项添加单元测试,这将依次推动您在上述步骤中编写的空方法的实现。
它将确保您对所有具体课程有100%的覆盖率。
0
我想知道,如果模拟对象的期望必须的代码创建
您可以创建一个具有一个方法之前写入 也什么也没有,然后嘲笑结果。
我怎么能想象在写真 代码之前必须调用的方法?
如何在不知道需要做什么的情况下编写代码?从空方法开始...
2
这就是为什么TDD是设计方法在第一位。通过测试你是设计你的应用程序。您正在创建漂亮的API,然后通过编写满足您的设计(即符合要求)的代码来实现此API。
从测试开始,它可以帮助您理解代码的需求,并以断言的形式记下这些需求(顺便提一下,有人可以实现这些需求)。从一开始你就不会创造出最好的设计。但是,您的设计将在重构过程中发展 - 您将重命名方法和类,您将提取一些代码。这将需要测试更改 - 您需要模拟提取的依赖关系。但是你的代码随时会满足需求,因为断言将保持不变。
相关问题
- 1. 模拟对象 - 设置方法 - 测试驱动开发
- 2. Android测试驱动开发
- 3. 测试驱动开发
- 4. 测试驱动开发 - WPF
- 5. 测试驱动开发javascript
- 6. 测试驱动开发书
- 7. 是测试面向发展对测试驱动开发
- 8. 测试驱动开发/集成测试的RIA开发
- 9. Swift中的测试驱动开发
- 10. REST API的测试驱动开发
- 11. 测试驱动的开发 - 单元测试(在CakePHP中)
- 12. Visual Studio 2010和测试驱动开发
- 13. Flash中的测试驱动开发
- 14. 测试驱动开发:无效方法
- 15. 测试驱动开发敏捷?
- 16. 测试驱动开发:asp.net mvc
- 17. 春季测试驱动开发嘲讽
- 18. RSpec的测试驱动开发
- 19. CakePHP中的测试驱动开发
- 20. SQL代码的测试驱动开发
- 21. 测试驱动开发和接口
- 22. Python中的测试驱动开发
- 23. Liferay的测试驱动开发
- 24. JavaScript库的测试驱动开发
- 25. 什么是测试驱动开发?
- 26. MSBuild任务的测试驱动开发
- 27. 测试驱动的开发问题
- 28. ASP.NET MVC和测试驱动开发
- 29. 测试驱动的开发过程
- 30. Python测试驱动开发 - 第6章