我对单元测试非常陌生,我想知道是否存在一种无需初始化类即可测试方法的方法.我问的原因是因为在构造函数中传递了许多对象,这意味着从彻底检查methodToTest进行大量模拟存根时似乎没有使用任何对象属性.这不是我的代码,否则该方法可以转换为静态方法.
class ExampleClass {
public ExampleClass(FirstClass fc, SecondClass sc, ThirdClass tc) {}
public void methodToTest(FourthClass foc) {}
}
解决方法:
您在这里有一些选择:
>将方法设为静态,因此您无需引用实际对象.仅当该方法不需要ExampleClass的任何状态时(即,它需要的所有内容都在方法参数中传递),这才起作用.
>将此方法提取到另一个更容易单独测试的类(可能使用方法对象模式).此重构称为replace method with method object.