我有一个静态方法类 Utils,它基本上用于实用方法,几乎每个类都使用它。它做一些事情,比如获取文件和其他基本的东西。我的测试人员将这个类更改为单例,这样每个使用 Utils 的类现在都必须调用 getInstance()。原因是除非是这种情况,否则他无法测试某些东西。在我看来,这在某些方面是错误的,这可能会导致问题。
public class Utils {
/**
* Singleton method to allow for easier testing.
* @return an instance of
*/
public synchronized static Utils getInstance() {
if (instance == null) {
instance = new Utils();
}
return instance;
}
public synchronized static void setInstance(Utils instance) {
Utils.instance = instance;
}
/** Singleton to make testing easier **/
private static Utils instance = null;
public static boolean checkOSTen() {
return getInstance()._checkOSTen();
}
private boolean _checkOSTen() {
boolean autoPair = false;
if (android.os.Build.VERSION.SDK_INT >= 10){
autoPair = true;
}
return autoPair;
}
}
顺便说一句,我有一个非常复杂的内部消息传递系统,它使用至少 7 个线程来发送消息,并且想看看静态方法调用与 Singleton 静态方法调用是否有影响。
除了这个,还有其他方法可以进行测试吗?似乎一些Java反射会得到你需要的东西。