亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

hamcrest 匹配器不匹配的問題

hamcrest 匹配器不匹配的問題

楊__羊羊 2021-08-25 10:21:08
我在使用以下代碼時遇到問題,我有點困惑public class EchoApp {    public static void main(String[] args) {        for (String string : args) {            System.out.println(string);        }    }}以下測試失?。篿mport static org.hamcrest.CoreMatchers.equalTo;import static org.mockito.Mockito.*;import java.io.PrintStream;import org.junit.Test;public class AppTest {    @Test    public void test() {        Input input = new Input("Hello!", "World!");        Output output = new Output("Hello!", "World!");        PrintStream out = mock(PrintStream.class);        System.setOut(out);        EchoApp.main(input.wrap());        output.value.forEach(i -> {            verify(out).println(equalTo(i));        });    }}import java.util.Arrays;import java.util.List;class Input extends Immutable<List<String>> {    Input(final List<String> values) {        super(values);    }    Input(String... values) {        super(Arrays.asList(values));    }    String[] wrap() {        return value.toArray(new String[value.size()]);    }    @Override    public String toString() {        return "Input [value=" + value + "]";    }}import java.util.Arrays;import java.util.List;class Output extends Immutable<List<String>> {    Output(List<String> values) {        super(values);    }    Output(String... values) {        super(Arrays.asList(values));    }    @Override    public String toString() {        return "Output [value=" + value + "]";    }}class Immutable<T> {    final T value;    Immutable(T value) {        this.value = value;    }    @Override    public int hashCode() {        final int prime = 31;        int result = 1;        result = prime * result + ((value == null) ? 0 : value.hashCode());        return result;    }參數不同!通緝:printStream.println("你好!"); -> 在 AppTest.lambda$0(AppTest.java:24) 實際調用有不同的參數: printStream.println("Hello!"); -> 在 EchoApp.main(EchoApp.java:7)
查看完整描述

1 回答

?
人到中年有點甜

TA貢獻1895條經驗 獲得超7個贊

我認為如果您使用 Mockito Matcher(不是 hamcrest 匹配器),它會起作用:org.mockito.Matchers#eq(T)。當涉及到這些匹配器時,自動完成功能很差,因為它們只返回一個值。org.mockito.Matchers 用于驗證參數(參見 JavaDoc)。


查看完整回答
反對 回復 2021-08-25
  • 1 回答
  • 0 關注
  • 216 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號