假设我在测试代码(ClassX
)中的生产代码(src/main/java
)和ClassXTest
中有类src/test/java
。在一些测试方法中,我想篡改ClassX
的一个方法返回,所以我重写ClassX
及其方法。我不想使用任何模拟框架或此类是匿名的。是否有任何命名如何命名这些类?
答案 0 :(得分:0)
就个人而言,我会称这些课程为:ClassXTestImpl
它不是世界上最大的命名约定,但很明显它是测试代码,并且预计不会被生产代码使用。您还可以将其作为使用它的测试类的私有内部类,然后您甚至无法通过生产代码访问它。
通常,我不喜欢调用Impl
,但在这种情况下,ClassX
部分将定义类实际执行的操作,而TestImpl
位只是将其标记为测试实现。
除了部分嘲笑之外:
我知道你说你不想使用模拟框架,但如果你要替换method1
以使method2
更容易测试,并且两种方法都存在于同一个类,那么你所做的是一种部分嘲弄的形式,无论你是否使用框架。很难找到没有链接到特定框架的Partial Mocking的文档,因此我提供EasyMock's documentation,但指出大多数模拟框架都支持这种模拟。
答案 1 :(得分:0)
这些类被称为"特定于测试的子类"任何命名约定似乎都没有。 http://xunitpatterns.com/Test-Specific%20Subclass.html给出了一些正在测试的覆盖类的例子。