2015-04-27 23 views
9

ben bunu yapmak istiyorum: argument1 tip bir specfic örneği ARGUMENT1 ve argument2 olduğunumockito Matchers.any (...) sadece

verify(function, Mockito.times(1)).doSomething(argument1, Matchers.any(Argument2.class)); 

herhangi biridir Argument2 türünün örneği.

Ama bir hata alıyorum: yazabilirim o tavsiyelerine uyarak

org.mockito.exceptions.misusing.InvalidUseOfMatchersException: Invalid use of argument matchers! 2 matchers expected, 1 recorded. This exception may occur if matchers are combined with raw values: 
    //incorrect: 
    someMethod(anyObject(), "raw String"); When using matchers, all arguments have to be provided by matchers. For example: 
    //correct: 
    someMethod(anyObject(), eq("String by matcher")); 

aşağıdaki ve her şey gayet: Ben ARGUMENT1 tip herhangi argüman arıyorum

verify(function, Mockito.times(1)).doSomething(Matchers.any(Argument1.class), Matchers.any(Argument2.class)); 

ve Argument2 türünde herhangi bir bağımsız değişken.

İstenilen davranışa nasıl sahip olabilirim?

cevap

13

Birden fazla olası bağımsız değişken eşleştiricisi vardır ve bunlardan biri istisna mesajında ​​belirtilen eq'dur. Kullanım:

verify(function, times(1)).doSomething(eq(arg1), any(Argument2.class)); 

(orada olması gerekiyordu statik ithalat - eq()Matchers.eq() olduğunu).

Ayrıca same() (referans eşitliği, yani ==) ve daha genel olarak kendi eşleştiricilerinizi yazabilirsiniz.

+0

Bana yüzümden bakıyor, okumaya zaman ayırmamak için bana hizmet ediyor! Bunun için teşekkürler. –