基本问题是“一个人应该如何开始为一个未经测试的项目编写单元和集成测试?特别是考虑到这个人不熟悉代码并且之前没有做过集成测试这一事实。"
考虑必须为项目编写单元测试和集成测试的场景。该项目使用Java/J2EE技术,完全没有编写任何测试。
我面临的困境是,既然我还没有写代码,我不想立即重构代码来编写测试。我还必须选择一个测试框架。我正在考虑使用 Mockito 和 Powermock。
我还必须估计测试的代码覆盖率。然后进行集成测试。我将不得不研究集成测试工具并选择一个。我之前没有为项目做过任何集成测试或估计可接受的代码覆盖水平。
由于我是独立工作,如果有一些策略、技巧、关于我应该从什么开始的建议以及可以推荐的工具,我将不胜感激。
最佳答案
先到先得:
- 了解架构,主要组件是什么?
- 如果您对程序提供的特性和功能没有很好的了解,请列出它们并创建它们的层次结构
- 熟悉代码,我推荐以下方法:
- 了解其不同组件的代码从何处开始后,尝试找出方法调用层次结构(在 Eclipse 中,您可以通过按 F3 轻松跳转源代码定义)
- 后面你也可以这样做,在调试代码的时候,这样会自动跳转到定义处,而且可以观察程序的状态是如何变化的
对于单元测试本身,我可以推荐Clean Code初学者的第 9 章(大约 12 页)。它使用 JUnit 作为示例,并很好地介绍了如何进行良好的测试。
在那里您将学到诸如 F.I.R.S.T. 之类的知识。原则上,单元测试应该是:
快速、独立、可重复、 self 验证和及时
一些说明,JUnit 本身就是最常用和接受度最高的测试框架。 Mockito 和 Powermock 是模拟框架,当您想进行集成测试时,它们与 JUnit 一起使用。
对于代码覆盖我只能推荐Cobertura , 但有很多 more .
在深入进行集成测试之前先进行单元测试(自下而上),您也可以反过来(自上而下),但是既然您说您经验不足,我会坚持首先。
最后,开始吧。在实际编写测试代码时,您将学到最多、最快的知识。
关于java - 从 Scratch 对未测试代码执行单元和集成测试的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11349466/