测试番石榴供应商的最佳方法

时间:2015-02-12 17:38:23

标签: java guava

如果我将SupplierSuppliers::memoize(Supplier<T> delegate)结合使用,那么测试它的最佳方式是什么?

例如,假设我有以下内容:

private static final Supplier<String> ENVIRONMENT_SUPPLIER = Suppliers.memoize(new Supplier<String>() {
    @Override
    public String get() {
        String value = "";// actually something time consuming
        return value;
    }
});

对我而言,最明显的方法似乎是将供应商提取到自己的(内部)类中并对其进行测试。出于某种原因,这对我来说似乎有点难看,当我最终升级到Java 8时看起来有点傻。

1 个答案:

答案 0 :(得分:1)

在这里结合选择。

首先,您可以将ENVIRONMENT_SUPPLIER声明为默认范围。在这种情况下,测试(应该在同一个包中)可以访问它并可以测试它。

其次,也许更好,如果它是一个复杂的类,做了耗时的工作,将它分解成自己的类是个好主意。这不仅允许访问测试,还允许您在测试包装类时使用模拟。由于它已经实现了一个接口(Supplier),因此很容易实现。