我正在使用mockito如何模拟stream.map()调用。
我试过这样的东西,返回null。
$_POST['submit']
这打印为空。
我正在寻找一种正确的嘲讽方法,它会返回' upperCaseStream'在输出中。
答案 0 :(得分:3)
请记住,即使调用看起来相同,方法引用或lambdas的标识也不保证相同。 Check this out
我对Mockito不是很了解,但我相信它会检查是否存在when
注册的值,这可能会调用等于某处无法保证在此工作的等号。例如:
Function<String, String> fn1 = String::toUpperCase;
Function<String, String> fn2 = String::toUpperCase;
System.out.println(fn1.equals(fn2)); // false on my machine
您可以将引用存储在变量中,稍后再使用
Function<String, String> toUpperCase = String::toUpperCase;
when(stringStream.map(toUpperCase)).thenReturn(upperCaseStream);
System.out.println(stringStream.map(toUpperCase));
是的,我真的不明白为什么需要嘲笑Stream<String>
你只能做Stream.of("foo","bar")