我真的进入了 TDD,并且开始在 jUnit 中使用 mockito 来提高我测试代码的能力。我真的很喜欢模仿!
我注意到我必须改变我对编码的看法,比如尽可能多地将协作者传递给方法,并尽可能限制在构造函数中完成的工作。
以下情况需要专家们提供一些关于 SO 的建议。
假设我有一个方法,它将在某个类上调用一些静态方法。例如
public void method(){
OtherClass.staticMethod();
}
这通常很糟糕,但在我的场景中是必需的。为了使代码在我的单元测试中更具可测试性,我想避免对 OtherClass 的依赖并将其作为参数传递。
这不起作用,因为它会产生编译时错误。
public void method(Class<? extends OtherClass> util){
util.staticMethod();
}
...
method(OtherClass.class);
这会起作用,但如果我不需要,我不喜欢实例化 OtherClass ,因为它只是一类静态实用程序,如方法:
public void method(OtherClass util){
util.staticMethod();
}
...
method(new OtherClass());
我的问题是:有没有更好更可取的方法来完成此操作而不使用 new 关键字?