मॉकिटो के साथ, मैं इसकी तर्क सूची के verify()
साथ एक विधि कॉल करना चाहता हूं byte[]
, लेकिन मुझे यह नहीं मिला कि यह कैसे लिखना है।
myMethod( byte[] )
मुझे बस कुछ चाहिए anyByteArray()
, मॉकिटो के साथ कैसे करना है?
मॉकिटो के साथ, मैं इसकी तर्क सूची के verify()
साथ एक विधि कॉल करना चाहता हूं byte[]
, लेकिन मुझे यह नहीं मिला कि यह कैसे लिखना है।
myMethod( byte[] )
मुझे बस कुछ चाहिए anyByteArray()
, मॉकिटो के साथ कैसे करना है?
जवाबों:
मैं कोशिश करूँगा any(byte[].class)
AdditionalMatchers.aryEq(expectedArray)
इसे इस्तेमाल करे:
AdditionalMatchers.aryEq(array);
मैं बल्कि उपयोग करेंगे Matchers.<byte[]>any()
। इसने मेरे लिए काम किया।
मैं मटनोस और एलेसीओ से सहमत हूं। इसके अलावा, कोई भी संभव विधि कॉल के रूप में जाँच कर सकता है (उत्पादन कोड में बाद की कॉल की पुष्टि करते हुए, सत्यापन का क्रम मायने नहीं रखता है)। यहाँ कोड है:
import static org.mockito.AdditionalMatchers.*;
verify(mockObject).myMethod(aryEq(new byte[] { 0 }));
verify(mockObject).myMethod(aryEq(new byte[] { 1, 2 }));
आप Mockito.any () का उपयोग कर सकते हैं जब तर्क भी सरणियाँ हैं। मैंने इसे इस तरह इस्तेमाल किया:
verify(myMock, times(0)).setContents(any(), any());
मेरे लिए क्या काम था org.mockito.ArgumentMatchers.isA
उदाहरण के लिए:
isA(long[].class)
यह ठीक काम करता है।
एक दूसरे का कार्यान्वयन अंतर है:
public static <T> T any(Class<T> type) {
reportMatcher(new VarArgAware(type, "<any " + type.getCanonicalName() + ">"));
return Primitives.defaultValue(type);
}
public static <T> T isA(Class<T> type) {
reportMatcher(new InstanceOf(type));
return Primitives.defaultValue(type);
}
आप हमेशा उपयोग करके एक कस्टम मिलानकर्ता बना सकते हैं argThat
Mockito.verify(yourMockHere).methodCallToBeVerifiedOnYourMockHere(ArgumentMatchers.argThat(new ArgumentMatcher<Object>() {
@Override
public boolean matches(Object argument) {
YourTypeHere[] yourArray = (YourTypeHere[]) argument;
// Do whatever you like, here is an example:
if (!yourArray[0].getStringValue().equals("first_arr_val")) {
return false;
}
return true;
}
}));