简体   繁体   English

为什么我的ArgumentMatcher从未调用过?

[英]why is my ArgumentMatcher never called?

I try to run the simplest test 我尝试运行最简单的测试

with mockito argument matcher: 与模仿参数匹配器:

import org.mockito.ArgumentMatcher;

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import static org.hamcrest.Matchers.*;
import static org.junit.Assert.*;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.argThat;
import static org.mockito.Mockito.*;


     @Test
        public void test123() throws Exception {
            MyClient cofmanClient = mock(MyClient.class);
            cofmanClient.holy("zigzag");

            MyClient verify = verify(cofmanClient);
            verify.holy(argThat(new MyMatcher()));
        }

        private static class MyClient {
            public void holy(String s) {
                System.out.println("Called with: " + s);
            }
        }

        private static class MyMatcher extends ArgumentMatcher<String> {
            @Override
            public boolean matches(Object argument) {
                System.out.println("Deadly cow! s=" + argument.getClass().getName());
                return argument.getClass() == Class.class;
            }
        }

however my matcher is never called. 但是我的匹配器从未被调用过。

what am i missing? 我想念什么?

尝试这个:

public boolean matches(String argument)

我的问题是intellij中"verify"方法上的断点阻止在ArgumentMatcher内部的断点处停止。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM