我正在尝试为返回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);