有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java 8:单元测试返回函数对象的方法

我试图为一个返回Function的方法编写一个Java8单元测试;比如:

class MyObject<X> {
     public Function<X,Obj> getFunction() {...}
 }

在我的单元测试中,我创建了一个示例对象并调用getFunction(),希望将其与不使用org.junit.Assert.assertEquals的预期函数进行比较:

@Test
public void getFunction_returnsFunction() {
   final MyObject<St> object = new MyObject<>(..);
   final Function<St,Obj> expectedResult = ...;

   // this does not work
   assertEquals(expectedResult, object.getFunction());
}

甚至可以比较两个Function吗?您建议如何对该方法进行单元测试


共 (1) 个答案

  1. # 1 楼答案

    使用标准R Function.apply(T t)方法检查函数行为:

    Function<St,Obj> func = o.getFunction();
    assertEquals(func.apply(value), expectedFunctionResult);