我有一些类共享一些常见的无状态方法,因此我创建了一个 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 类。现在当我测试时出现问题,静态方法无法被覆盖。创建一个所有其他类扩展的基类(并不真正遵循“is a”原则)会更好,还是只是将测试需要重写的静态方法移到主类中?
在我的测试期间,我想覆盖instance()并只返回一个模拟对象。
最佳答案
我希望这不是实际的代码,因为 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.
}
}
关于java - 需要测试静态Utils类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21314047/