java - 需要测试静态Utils类

标签 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 类。现在当我测试时出现问题,静态方法无法被覆盖。创建一个所有其他类扩展的基类(并不真正遵循“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/

相关文章:

Java,将链表与数组进行比较

java - 在ArrayList上实现降序快速排序

java - 从 mysql 插入时出错

android - 从 ImageView 获取裁剪后的图像

android - 如何更改 RemoteViews 中的文本大小

android - SimpleExoPlayerView 是否有 Controller 可见性更改事件?

php - spl_object_hash 匹配,对象不相同

c++ - C++函数指针中的协变和逆变?

c++ - 如何在虚方法上使用模板参数类?

java - 在 Java 中读取 Windows 文件摘要属性(标题、主题、作者)