EasyMock একটি Java লাইব্রেরি যা মক অবজেক্ট তৈরির মাধ্যমে ইউনিট টেস্টিং সহজ করে। মক অবজেক্ট এমন একটি অবজেক্ট যা বাস্তবিক কোনো কোডের পরিবর্তে পদ্ধতির আচরণকে কন্ট্রোল করতে পারে। "Unreachable code" বলতে এমন কোডকে বোঝায় যা কখনোই কার্যকর হয় না, যেমন যদি কোনো কন্ডিশন চেক করা হয় এবং তারপরে সঠিকভাবে কোড এক্সিকিউট না হয়।
EasyMock এর মাধ্যমে "Unreachable code" টেস্ট করার জন্য, আপনি মক অবজেক্ট তৈরি করতে পারেন যা বিশেষ ধরনের সিচুয়েশন তৈরি করবে যাতে আপনার কোডের কিছু অংশ কখনোই এক্সিকিউট না হয়।
Unreachable Code Test করতে EasyMock ব্যবহার:
ধরা যাক, আপনি একটি মেথডে কিছু কোড লিখেছেন, যেখানে একটি শর্ত আছে যা কখনোই পূর্ণ হয় না (অর্থাৎ, "unreachable").
উদাহরণ:
import static org.easymock.EasyMock.*;
public class Example {
public String getMessage(String input) {
if (input == null) {
return "Input is null";
} else {
return "Hello " + input;
}
}
}
এখানে, যদি input এর মান null হয়, তখন "Input is null" রিটার্ন হবে, আর অন্যথায় "Hello <input>" রিটার্ন হবে। এখন, ধরুন আপনি টেস্ট করতে চান এমন একটি ক্ষেত্রে যেখানে "Input is null" কখনোই এক্সিকিউট না হয়।
EasyMock দিয়ে টেস্ট করার পদ্ধতি:
import static org.easymock.EasyMock.*;
import org.junit.Test;
import static org.junit.Assert.*;
public class ExampleTest {
@Test
public void testUnreachableCode() {
// মক অবজেক্ট তৈরি
Example mockExample = createMock(Example.class);
// মক অবজেক্টের ব্যবহৃত পদ্ধতি কলের জন্য প্রত্যাশা সেটআপ
expect(mockExample.getMessage("validInput")).andReturn("Hello validInput");
// মক অবজেক্টের কাজের জন্য replay mode শুরু করা
replay(mockExample);
// অ্যাকচুয়াল কোড কল
String result = mockExample.getMessage("validInput");
// টেস্টিং আউটপুট
assertEquals("Hello validInput", result);
// verify মেথড কল
verify(mockExample);
}
}
ব্যাখ্যা:
- মক অবজেক্ট তৈরি করা: আমরা
createMockব্যবহার করেExampleক্লাসের একটি মক অবজেক্ট তৈরি করি। - মক অবজেক্টের পদ্ধতি কলের প্রত্যাশা নির্ধারণ করা:
expectমেথডটি দ্বারা আমরা নির্ধারণ করছি যেgetMessageমেথড যদি"validInput"প্যারামিটার নিয়ে কল হয়, তবে এটি"Hello validInput"রিটার্ন করবে। - Replay mode চালু করা:
replayকল করে মক অবজেক্টের কার্যকারিতা চালু করা হয়। - টেস্ট রান করা: আসল
getMessageমেথডের পরিবর্তে মক অবজেক্ট কল করা হয়, এবং রিটার্ন ভ্যালু যাচাই করা হয়। - Verify কল করা:
verifyকল দিয়ে মক অবজেক্টের প্রত্যাশা যাচাই করা হয়।
এভাবে, আপনি এমন কোড অংশ টেস্ট করতে পারবেন যেগুলি কখনোই কার্যকর না হয়, কারণ আপনি মক অবজেক্টের মাধ্যমে সেই শর্তগুলি ইমুলেট করতে পারেন।
Read more