আমার এরকম কিছু রয়েছে:
public byte[] EncodeMyObject(MyObject obj)
আমি এইভাবে ইউনিট টেস্টিং করেছি:
byte[] expectedResults = new byte[3]{ 0x01, 0x02, 0xFF };
Assert.IsEqual(expectedResults, EncodeMyObject(myObject));
সম্পাদনা: আমি যে দুটি উপায় প্রস্তাব করেছি তা হ'ল:
1) উপরের উদাহরণের মতো হার্ডকডযুক্ত প্রত্যাশিত মানগুলি ব্যবহার করা।
2) এনকোডযুক্ত বাইট অ্যারে ডিকোড করতে একটি ডিকোডার ব্যবহার করে এবং ইনপুট / আউটপুট অবজেক্টের সাথে তুলনা করুন।
পদ্ধতি 1 টির সাথে আমি যে সমস্যাটি দেখছি তা হ'ল এটি খুব ভঙ্গুর এবং এর জন্য প্রচুর হার্ড কোডিং মান প্রয়োজন।
পদ্ধতি 2 এর সাথে সমস্যা হ'ল এনকোডারটি পরীক্ষা করা ডিকোডার সঠিকভাবে কাজ করে তার উপর নির্ভর করে। যদি এনকোডার / ডিকোডার সমানভাবে ভাঙা হয় (একই জায়গায়), তবে পরীক্ষাগুলি মিথ্যা ধনাত্মকতা তৈরি করতে পারে।
এই পদ্ধতিটি এই ধরণের পরীক্ষা করার খুব ভাল উপায় হতে পারে। যদি তা হয় তবে জরিমানা। এই ধরণের পরীক্ষার জন্য আরও ভাল কৌশল আছে কিনা তা জানতে আমি জিজ্ঞাসা করছি । আমি যে বিশেষ এনকোডারটিতে কাজ করছি তার অভ্যন্তরগুলি প্রকাশ করতে পারি না। আমি সাধারণভাবে জিজ্ঞাসা করছি আপনি কীভাবে এই ধরণের সমস্যা সমাধান করবেন এবং আমি মনে করি না অভ্যন্তরীণগুলি গুরুত্বপূর্ণ। ধরে নিন যে প্রদত্ত ইনপুট অবজেক্টটি সর্বদা একই আউটপুট বাইট অ্যারে উত্পাদন করে।
myObjectথেকেmyObjectযায়{ 0x01, 0x02, 0xFF }? সেই অ্যালগরিদম কি ভেঙে পরীক্ষা করা যায়? আমি জিজ্ঞাসার কারণটি বর্তমানে, মনে হচ্ছে আপনার একটি পরীক্ষা রয়েছে যা প্রমাণ করে যে একটি যাদু জিনিস অন্য যাদু জিনিস তৈরি করে। আপনার একমাত্র আত্মবিশ্বাস হ'ল এক ইনপুটটি একটি আউটপুট উত্পাদন করে। আপনি যদি অ্যালগরিদমকে ভেঙে ফেলতে পারেন তবে আপনি অ্যালগরিদমের প্রতি আরও আস্থা অর্জন করতে পারেন এবং যাদুকরী ইনপুট এবং আউটপুটগুলিতে কম নির্ভরশীল হতে পারেন।