কোনও পদ্ধতি যাচাই করবেন কীভাবে মকিতো যাচাইয়ের মাধ্যমে দুইবার বলা হয় ()


307

মকিতো যাচাইয়ের মাধ্যমে যদি কোনও পদ্ধতি অন্তত একবার কল করা হয় তবে আমি যাচাই করতে চাই। আমি যাচাই করেছি এবং এটি এরকম অভিযোগ করে:

org.mockito.exceptions.verification.TooManyActualInvocations: 
Wanted 1 time:
But was 2 times. Undesired invocation:

উত্তর:


519

উপযুক্ত ভেরিফিকেশনমড ব্যবহার করুন:

import static org.mockito.Mockito.atLeast;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

verify(mockObject, atLeast(2)).someMethod("was called at least twice");
verify(mockObject, times(3)).someMethod("was called exactly three times");

22
আপনি স্থিতিশীল আমদানির Mockito.times(...)পরিবর্তে ব্যবহার করতে পারেনVerificationModeFactory.times(...)
উইম দেবলাউই

26
import static org.mockito.Mockito.times;। সাধারণত (" import static org.mockito.internal.verification.VerificationModeFactory.times;) এর মধ্যে" অভ্যন্তরীণ "দিয়ে প্যাকেজগুলি আমদানি করা নিরুৎসাহিত করা হয়।
রজার

সময় লেখার অন্য উপায় আছে (1)?
গ্লেন বেচ

1
@ গ্লেনবেচ আপনি কেবল এটি বাদ দিতে পারেন , এটি অন্তর্নিহিত; ডিফল্টটি verify(mockObject).someMethod("")ঠিক 1 টি ইন্টারঅ্যাকশনটির জন্য দেখায় (আর নয়, কম নয়)। পরিবর্তে, যদি আপনি পদ্ধতির কমপক্ষে একটি প্রার্থনা চান তবে আপনি atLeastOnce()স্পেসিফায়ারটি ব্যবহার করতে পারেন ।
nbrooks

1
@ রোজার আমি আপনার সাথে একমত হয়েছি, প্রথম দিকে আমার মতো টিডিডি প্র্যাকটিসিয়ার, স্ট্যাটিক আমদানি আমাকে যে পদ্ধতিগুলি বা কোন কাঠামো ব্যবহার করছে তা স্মরণ করা সম্পর্কে আরও বিভ্রান্ত করে তোলে (মকিতো, এস্প্রেসো বা কেবলমাত্র সাধারণ ইউনিট পরীক্ষা)।
একবার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.