假设测试代码(src/test/java
)中的生产代码(src/main/java
)和ClassXTest
中的类ClassX
。在一些测试方法中,我想篡改ClassX
返回的方法之一,所以我覆盖了ClassX
及其方法。我不想使用任何模拟框架或这个类是匿名的。是否有任何命名应如何命名这些类?测试代码中类的命名约定
0
A
回答
0
这些类被称为“测试特定的子类”,似乎没有任何命名约定。 http://xunitpatterns.com/Test-Specific%20Subclass.html给出了一些覆盖正在测试的类的示例。
+0
这样的类也被称为“测试子类”,我看到建议在名称前面添加了“测试”前缀。例如,生产类“Server”,测试用例类“ServerTest”和测试子类“TestingServer”。 – 2014-11-04 21:24:44
0
就个人而言,我会叫这些类:ClassXTestImpl
这不是世界上最伟大的命名惯例,但它足以表明它是测试代码,而不是预期由生产代码中使用。你也可以使它成为它正在使用的测试类的私有内部类,那么它甚至不会被你的生产代码访问。
通常,我不喜欢调用东西Impl
,但在这种情况下,ClassX
部分将定义该类实际执行的操作,TestImpl
位仅用于将其标记为测试实现。
旁白有关部分嘲弄:
我知道你说你不想用嘲讽的框架,但如果你是为了更换method1
使method2
更容易测试和两种方法居住在同一个班级,那么你正在做的是一种部分嘲弄的形式,无论你是否使用框架来做。很难找到与特定框架无关的部分模拟的文档,所以我会提供EasyMock's documentation,但指出大多数模拟框架支持这种模拟。
相关问题
- 1. PEP8测试类的命名约定
- 2. C/C++代码的编码和命名约定的测试
- 3. .NET测试命名约定
- 4. PHPUnit的测试套件命名约定
- 5. 单元测试包命名约定
- 6. 自动UI测试命名约定
- 7. 接口类型的代码合同类的命名约定
- 8. c#单元测试 - 重载方法测试的命名约定
- 9. Qt的类命名约定
- 10. zf2类的命名约定
- 11. Python中测试文件的最佳命名约定是什么?
- 12. C#类命名约定
- 13. 抽象类命名约定
- 14. objC中的类别命名约定
- 15. 替代多对多关系的代码优先命名约定
- 16. C#中此代码的适当命名约定和标准#
- 17. 如何更改大型现有代码中的命名约定?
- 18. 命名约定
- 19. 命名约定
- 20. ReactJs中的命名约定
- 21. MVC5中的命名约定
- 22. c中的命名约定#
- 23. 适用于junit测试方法的命名约定
- 24. 为什么Jest测试命名约定是这样的?
- 25. 我应该更改单元测试的命名约定吗?
- 26. 测试计划版本的命名约定
- 27. Python:测试的约定名称
- 28. 坚持“编码风格”,“命名约定”和“记录代码”
- 29. 命名约定:退出状态,退出代码或返回码?
- 30. 测试Python中文件名是否具有正确的命名约定
这没有任何意义;如果你正在测试'ClassX',你为什么要在测试过程中覆盖它? – 2014-10-08 22:22:32
可以伪造它返回的值(例如,返回常量而不是访问WS或DB)或感知某些内容(例如,存储参数的值以便稍后可以检查)。 – 2014-10-09 05:07:34
要测试一个抽象类,你也必须扩展它。 – 2014-10-09 05:33:22