可以通過將不同的 lambda 傳遞給該方法來測驗將 lambda 作為引數的方法。例如,假設我們有以下功能介面:
@FunctionalInterface
public interface Replacer<String> {
String replace(String s);
}
我們還假設我們有一個采用 String -> String 型別的 lambdas 的方法,如下所示:
public static List<String> replace(
List<String> list, Replacer<String> r) {
List<String> result = new ArrayList<>();
for (String s: list) {
result.add(r.replace(s));
}
return result;
}
現在,我如何使用兩個 lambda 為這個方法撰寫 JUnit 測驗?
uj5u.com熱心網友回復:
@Test
public void testReplacer() throws Exception {
List<String> names = Arrays.asList(
"Ann a 15", "Mir el 28", "D oru 33");
List<String> resultWs = replace(
names, (String s) -> s.replaceAll("\\s", ""));
List<String> resultNr = replace(
names, (String s) -> s.replaceAll("\\d", ""));
assertEquals(Arrays.asList(
"Anna15", "Mirel28", "Doru33"), resultWs);
assertEquals(Arrays.asList(
"Ann a ", "Mir el ", "D oru "), resultNr);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/437437.html
