2016-10-18 17 views
0

私はmockito引数マッチャで最も簡単なテストなぜ私のArgumentMatcherは呼び出されませんか?

を実行しよう:私のマッチャーが呼び出されることはありませんが

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; 
      } 
     } 

何が欠けていますか?

+0

周囲の 'argThat()'メソッド呼び出しを削除するとどうなりますか? –

+0

MyClientがverify = verify(cofmanClient)とは何ですか?行う? – kuhajeyan

+0

@TimothyTruckle 'エラー:(158,21)java:互換性のない型:mytype.MyMatcherをjava.lang.Stringに変換できません。 ' –

答えて

0

はこれを試してみてください。

public boolean matches(String argument) 
+0

エラー:(167、20)java:linqmap.supportool.services.gas.GasStationConfigServiceTest.MyMatcherは抽象メソッドではなく、org.mockito.ArgumentMatcherの抽象メソッドの一致(java.lang.Object)をオーバーライドしません。 –

+0

ハングオー、悪い これはArgumentMatcher のために動作するかもしれません。なぜなら、 "ジェネリック"はメソッドであったとしても意味のある文字列だったからです。 –

0

私の問題はArgumentMatcher内のブレークポイントで停止から"verify"方法ブロック上のIntelliJでそのブレークポイントでした。

関連する問題