需要测试静态Utils类

时间:2014-01-23 16:34:01

标签: java android oop inheritance

我有一些类共享一些常见的无状态方法,所以我在这里创建了一个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()并返回一个模拟对象。

1 个答案:

答案 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.
    }
}