【问题标题】:How to test a Google Guava Predicate factory kind of class如何测试 Google Guava Predicate 工厂类
【发布时间】:2014-07-15 12:23:52
【问题描述】:

我有一个名为 XxxPredicateFactory 的类,它返回单个谓词或谓词组合。像这样的:

Public class XxxPredicateFactory {

     public Predicate<Abc> create() {
          if (this) {
              return new HelloPredicate<Abc>();
          }
          else if (that) {
              return new WorldPredicate<Abc>();
          }
          else {
               return Predicates.or(new HelloPredicate<Abc>(), new WorldPredicate<Abc>());
          }
     }

}

对于 if 和 else if,似乎很容易测试,但对于 else 部分,我不太确定如何测试?我怎样才能捕捉到这种情况?

【问题讨论】:

  • 创建一个扩展XxxPredicateFactory的类(因为它不是最终的)并设置实例的内部状态,使thisthat都是false

标签: java functional-programming guava predicate


【解决方案1】:

你能不能只测试返回的谓词是否为HelloPredicate 应该返回true 的事物和WorldPredicate 应该返回true 的事物返回true

【讨论】:

  • 能否添加一些代码来测试最后一条语句? return Predicates.or(new HelloPredicate(), new WorldPredicate());
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-20
相关资源
最近更新 更多