পরীক্ষা চালিত বিকাশের অর্থ হ'ল যখন আপনার সমস্ত পরীক্ষা পাস হয় আপনি কোডিং বন্ধ করে দেন।
আপনার যদি কোনও সম্পত্তির জন্য কোনও পরীক্ষা না থাকে, তবে কেন আপনি এটি বাস্তবায়ন করবেন? যদি আপনি "অবৈধ" কার্যভারের ক্ষেত্রে প্রত্যাশিত আচরণটি পরীক্ষা / সংজ্ঞায়িত না করেন তবে সম্পত্তিটি কী করবে?
সুতরাং আমি এক শ্রেণীর প্রদর্শন করা উচিত প্রতিটি আচরণ পরীক্ষা করার জন্য করছি। "আদিম" বৈশিষ্ট্য সহ।
এই পরীক্ষাটি আরও সহজ করার জন্য, আমি একটি সাধারণ নুনিট তৈরি করেছি TestFixture
যা মান নির্ধারণ / পাওয়ার জন্য এক্সটেনশন পয়েন্ট সরবরাহ করে এবং বৈধ ও অবৈধ মানগুলির তালিকা গ্রহণ করে এবং সম্পত্তিটি ঠিক কাজ করে কিনা তা যাচাই করার জন্য একটি একক পরীক্ষা আছে। একটি একক সম্পত্তি পরীক্ষা করা এইরকম দেখতে পারে:
[TestFixture]
public class Test_MyObject_SomeProperty : PropertyTest<int>
{
private MyObject obj = null;
public override void SetUp() { obj = new MyObject(); }
public override void TearDown() { obj = null; }
public override int Get() { return obj.SomeProperty; }
public override Set(int value) { obj.SomeProperty = value; }
public override IEnumerable<int> SomeValidValues() { return new List() { 1,3,5,7 }; }
public override IEnumerable<int> SomeInvalidValues() { return new List() { 2,4,6 }; }
}
ল্যাম্বডাস এবং অ্যাট্রিবিউট ব্যবহার করে এটি আরও সংক্ষিপ্তভাবে লেখা যেতে পারে। আমি সংগ্রহ করি এমবিউনিতের মতো জিনিসগুলির জন্য এমনকি কিছু স্থানীয় সমর্থন রয়েছে। যদিও মুল বক্তব্যটি হ'ল উপরের কোডটি সম্পত্তিটির অভিপ্রায়টি ধারণ করে।
পিএস: সম্ভবত প্রপার্টি টেস্টেও পরীক্ষা করার একটি উপায় থাকা উচিত যে বস্তুর অন্যান্য বৈশিষ্ট্যগুলি পরিবর্তন হয়নি। হুম .. ড্রইং বোর্ডে ফিরে এসেছি।