我真的进入了TDD,我开始在jUnit中使用mockito来提高我测试代码的能力.我真的很喜欢mockito!
我注意到我必须改变我对编码的思考方式,比如尽可能地将协作者传递给方法,并尽可能限制构造函数中的工作.
以下场景需要来自SO专家的一些建议.
假设我有一个方法,它会在某个类上调用一些静态方法.例如
public void method(){
OtherClass.staticMethod();
}
Run Code Online (Sandbox Code Playgroud)
这通常很糟糕,但在我的场景中需要它.为了使代码在我的单元测试中更易于测试,我想避免依赖于OtherClass并将其作为参数传递.
这不起作用,因为它产生编译时错误.
public void method(Class<? extends OtherClass> util){
util.staticMethod();
}
...
method(OtherClass.class);
Run Code Online (Sandbox Code Playgroud)
这可行,但我不喜欢实例化的OtherClass,如果我不需要,因为它只是一类静态实用程序,如方法:
public void method(OtherClass util){
util.staticMethod();
}
...
method(new OtherClass());
Run Code Online (Sandbox Code Playgroud)
我向您提问:如果不使用新关键字,是否有更好的方法来实现这一目标?
java ×1