测试代码中类的命名约定

时间:2014-10-08 20:24:17

标签: java junit

假设我在测试代码(ClassX)中的生产代码(src/main/java)和ClassXTest中有类src/test/java。在一些测试方法中,我想篡改ClassX的一个方法返回,所以我重写ClassX及其方法。我不想使用任何模拟框架或此类是匿名的。是否有任何命名如何命名这些类?

2 个答案:

答案 0 :(得分:0)

就个人而言,我会称这些课程为:ClassXTestImpl

它不是世界上最大的命名约定,但很明显它是测试代码,并且预计不会被生产代码使用。您还可以将其作为使用它的测试类的私有内部类,然后您甚至无法通过生产代码访问它。

通常,我不喜欢调用Impl,但在这种情况下,ClassX部分将定义类实际执行的操作,而TestImpl位只是将其标记为测试实现。


除了部分嘲笑之外:

我知道你说你不想使用模拟框架,但如果你要替换method1以使method2更容易测试,并且两种方法都存在于同一个类,那么你所做的是一种部分嘲弄的形式,无论你是否使用框架。很难找到没有链接到特定框架的Partial Mocking的文档,因此我提供EasyMock's documentation,但指出大多数模拟框架都支持这种模拟。

答案 1 :(得分:0)

这些类被称为"特定于测试的子类"任何命名约定似乎都没有。 http://xunitpatterns.com/Test-Specific%20Subclass.html给出了一些正在测试的覆盖类的例子。