像 filter 这样只描述 Stream,最终不产生新集合的方法叫作惰性求值方法(lazy);而像 count 这样 最终会从 Stream 产生值的方法叫作及早求值方法(eager)。...你可以在测试代码中复制 Lambda 表达式来测试,但这种方式的副作用是测试的不是真正的实现。假设你修改了实现代码,测试仍然通过,而实现可能早已在做另一件事了。
解决该问题有两种方式。...第一种是将 Lambda 表达式放入一个方法测试,这种方式要测那个方法,而不是 Lambda 表达式本身。第二种测试的重点放在方法的行为上。...你可以在测试代码中复制 Lambda 表达式来测试,但这种方式的副作用是测试的不是真正的实现。假设你修改了实现代码,测试仍然通过,而实现可能早已在做另一件事了。
解决该问题有两种方式。...第一种是将 Lambda 表达式放入一个方法测试,这种方式要测那个方法,而不是 Lambda 表达式本身。