মকিতো দিয়ে, আমি চাই verify()
byte[]
তার যুক্তি তালিকার সাথে একটি পদ্ধতি কল , তবে কীভাবে এটি লিখতে হয় তা খুঁজে পেলাম না।
myMethod( byte[] )
আমি শুধু কিছু চাই anyByteArray()
, মকিতো দিয়ে এটি কীভাবে করব?
মকিতো দিয়ে, আমি চাই verify()
byte[]
তার যুক্তি তালিকার সাথে একটি পদ্ধতি কল , তবে কীভাবে এটি লিখতে হয় তা খুঁজে পেলাম না।
myMethod( byte[] )
আমি শুধু কিছু চাই anyByteArray()
, মকিতো দিয়ে এটি কীভাবে করব?
উত্তর:
এটা চেষ্টা কর:
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 }));
যখন আর্গুমেন্টগুলি অ্যারে হয় তখন আপনি মকিতো.ই () ব্যবহার করতে পারেন। আমি এটি এর মতো ব্যবহার করেছি:
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;
}
}));