我有一些类共享一些常见的无状态方法,所以我在这里创建了一个Util类是一个示例方法:
public class FileUtil {
private static final int kFILEBUFSIZE = 128;
private static FileUtil fSingleton;
public static synchronized FileUtil instance() {
if( fSingleton == null )
fSingleton = new FileUtil();
return fSingleton;
}
.....
因此,使用这些方法的所有类都会对Util类进行静态导入。现在问题出现在我测试时,静态方法无法被覆盖。创建一个所有其他类扩展的基类(不是真的遵循“是一个”主体),或者只是将需要被覆盖的静态方法移动到主类中,是否会更好?
在我的测试期间,我想覆盖instance()并返回一个模拟对象。
答案 0 :(得分:3)
我希望这不是真正的代码,因为String在我识别的任何java中都没有size()方法。
在jUnit(或其他单元测试框架)中测试方法。
例如
public class TestBlammy
{
@Test
public void test1()
{
assertEquals(5, Util.sizeOf("12345"));
assertEquals(0, Util.sizeOf(""));
assertEquals(0, Util.sizeOf(null)); // you don't currently handle this, but should.
}
}