Java 如何测试GoogleGuava谓词工厂类

Java 如何测试GoogleGuava谓词工厂类,java,functional-programming,guava,predicate,Java,Functional Programming,Guava,Predicate,我有一个名为XxxPredicateFactory的类,它返回单个谓词或谓词组合。大概是这样的: Public class XxxPredicateFactory { public Predicate<Abc> create() { if (this) { return new HelloPredicate<Abc>(); } else if (that) {

我有一个名为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>());
          }
     }

}
公共类XxxPredicateFactory{
公共谓词create(){
如果(这个){
返回新的HelloPredicate();
}
否则,如果(那){
返回新的WorldPredicate();
}
否则{
返回谓词。或(新HelloPredicate(),新WorldPredicate());
}
}
}

对于if和elseif,它似乎很容易测试,但对于else部分,我不太确定如何测试它?如何捕获这种情况?

您能不能测试返回的谓词对于
HelloPredicate
应该返回
true的对象和
WorldPredicate
应该返回
true
的对象都返回
true
呢?

创建一个扩展
XxxPredicateFactory
(因为它不是最终的)并设置实例的内部状态,以便
this
that
都是
false
。您可以添加一些代码来测试上一个语句吗?返回谓词。或者(new HelloPredicate(),new WorldPredicate());