Java 8 : unit-testing a method that returns a Function object

标签 java unit-testing lambda java-8

我正在尝试为返回 Function 的方法编写 Java 8 单元测试;像这样的东西:

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秒?您会如何建议对此方法进行单元测试?

最佳答案

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

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

关于Java 8 : unit-testing a method that returns a Function object,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540533/

相关文章:

java - onClick() 用于微调器或类似的东西

java - android版本和解析错误

java - 从 Apache 机器上的 Tomcat 服务器检索文件

java - 使用 final 属性扩展类。小样

c++ - 如何制作可变参数 lambda?

Java缓冲区策略: compiler doesn't like it

c# - 确保服务连通性

java - 将 PowerMockito 与静态方法一起使用时出现异常

java - 如何在 Java 中用 lambda 替换匿名类?

java - 使用不同的类加载器在 Java 中动态创建 lambda