প্রয়োগের উপর পরীক্ষার চেয়ে ইন্টারফেসের পরীক্ষার পছন্দ করুন।
এটি আমার বুঝতে পারছে যে ব্যক্তিগত পদ্ধতিগুলি অবিচ্ছেদ্য
এটি আপনার বিকাশের পরিবেশের উপর নির্ভর করে, নীচে দেখুন।
[ব্যক্তিগত পদ্ধতি] সম্পর্কে উদ্বিগ্ন হওয়া উচিত নয় কারণ সর্বজনীন এপিআই কোনও সামগ্রীর অখণ্ডতা যাচাই করার জন্য পর্যাপ্ত তথ্য সরবরাহ করবে।
এটা ঠিক, টিডিডি ইন্টারফেসটি পরীক্ষা করার দিকে মনোনিবেশ করে।
ব্যক্তিগত পদ্ধতিগুলি এমন একটি বাস্তবায়ন বিশদ যা কোনও পুনঃ-গুণক চক্রের সময় পরিবর্তিত হতে পারে। ইন্টারফেস বা ব্ল্যাক-বাক্সের আচরণটি পরিবর্তন না করে পুনঃ-গুণন করা সম্ভব should প্রকৃতপক্ষে, এটি টিডিডি-র সুবিধার একটি অংশ, আপনি যে স্বাচ্ছন্দ্যের সাথে আত্মবিশ্বাস তৈরি করতে পারবেন যে কোনও শ্রেণীর অভ্যন্তরীণ পরিবর্তনগুলি সেই শ্রেণীর ব্যবহারকারীদের উপর প্রভাব ফেলবে না।
ঠিক আছে, আমার পক্ষে এমন কোনও অবজেক্ট তৈরি করা সম্ভব যা কেবলমাত্র ব্যক্তিগত পদ্ধতি রয়েছে এবং তাদের ইভেন্টগুলি শুনে অন্যান্য বস্তুর সাথে মিথস্ক্রিয়া করে। এটি খুব এনক্যাপসুলেটেড, তবে সম্পূর্ণ অকেস্টেবল হবে।
এমনকি যদি বর্গ কোন পাবলিক পদ্ধতি আছে, এটা ইভেন্ট হ্যান্ডলার এটা রয়েছে প্রকাশ্য ইন্টারফেস , এবং এটি বিরুদ্ধে যে প্রকাশ্য ইন্টারফেস যে আপনি পরীক্ষা করতে পারেন।
যেহেতু ইভেন্টগুলি ইন্টারফেস তাই এটি সেই ইভেন্ট যা আপনাকে সেই বস্তুর পরীক্ষা করার জন্য তৈরি করতে হবে।
আপনার পরীক্ষার সিস্টেমের জন্য আঠালো হিসাবে মক অবজেক্টগুলি ব্যবহার করে দেখুন । একটি সাধারণ মক অবজেক্ট তৈরি করা সম্ভব হবে যা কোনও ইভেন্ট উত্পন্ন করে এবং ফলাফলের স্থিতিশীল পরিবর্তনটি গ্রহণ করে (অন্য কোনও গ্রহণকারী মক অবজেক্ট দ্বারা সম্ভব)।
এছাড়াও, এটি পরীক্ষার স্বার্থে পদ্ধতি যুক্ত করা খারাপ অভ্যাস হিসাবে বিবেচিত।
অবশ্যই, আপনার অভ্যন্তরীণ অবস্থা প্রকাশের বিষয়ে খুব সতর্ক হওয়া উচিত ।
এর অর্থ কী টিডিডি এনক্যাপসুলেশন নিয়ে মতবিরোধে রয়েছে? উপযুক্ত ব্যালেন্স কী?
একেবারে না.
টিডিডি আপনার ক্লাসগুলির বাস্তবায়ন পরিবর্তন করা উচিত না এগুলি সম্ভবত সরল করার জন্য ( পূর্বের দিক থেকে YAGNI প্রয়োগ করে )।
টিডিডি সহ সেরা অনুশীলনটি টিডিডি ছাড়াই সেরা অনুশীলনের অনুরূপ, আপনি কেবল কেন তাড়াতাড়ি এটি সন্ধান করতে পারেন কারণ আপনি ইন্টারফেসটি বিকাশের সাথে সাথে ব্যবহার করছেন।
আমি এখন আমার বেশিরভাগ বা সমস্ত পদ্ধতি জনসাধারণের দিকে ঝুঁকিতে ফেলেছি ...
এটি বরং স্নানের জল দিয়ে শিশুটিকে বাইরে ফেলে দেওয়া হবে।
আপনার সমস্ত পদ্ধতি জনসাধারণের করার দরকার নেই যাতে আপনি টিডিডি উপায়ে বিকাশ করতে পারেন। আপনার ব্যক্তিগত পদ্ধতিগুলি সত্যই অচিরাচরযোগ্য কিনা তা দেখতে নীচের আমার নোটগুলি দেখুন।
ব্যক্তিগত পদ্ধতি পরীক্ষা করার জন্য আরও বিশদ চেহারা
ভাষা / পরিবেশের উপর নির্ভর করে যদি আপনাকে অবশ্যই কোনও শ্রেণির কিছু ব্যক্তিগত আচরণ পরীক্ষা করতে হবে তবে আপনার কাছে তিনটি বিকল্প থাকতে পারে:
- আপনি যে শ্রেণিতে পরীক্ষা দিতে চান তা পরীক্ষা করুন।
- অন্য শ্রেণি / উত্স ফাইলে পরীক্ষাগুলি রাখুন এবং আপনি যে ব্যক্তিগত পদ্ধতিগুলি জনসাধারণের পদ্ধতি হিসাবে পরীক্ষা করতে চান তা প্রকাশ করে।
- একটি পরীক্ষার পরিবেশ ব্যবহার করুন যা আপনাকে পরীক্ষা এবং উত্পাদন কোড পৃথক রাখতে দেয়, তবুও পরীক্ষার কোডটি উত্পাদন কোডের ব্যক্তিগত পদ্ধতিতে অ্যাক্সেসের অনুমতি দেয়।
স্পষ্টতই 3 য় বিকল্পটি সর্বোত্তম।
1) আপনি যে শ্রেণিতে পরীক্ষা দিতে চান তা পরীক্ষা করুন (আদর্শ নয়)
পরীক্ষার অধীন উত্পাদন কোড হিসাবে একই শ্রেণি / উত্স ফাইলে পরীক্ষার কেসগুলি সংরক্ষণ করা সহজ বিকল্প। তবে প্রচুর প্রাক-প্রসেসরের নির্দেশনা বা টীকাগুলি ছাড়াই আপনি আপনার পরীক্ষার কোডটি আপনার উত্পাদন কোডটি অকারণে ফুলে যাবেন এবং আপনি কীভাবে আপনার কোডটি কাঠামোগত করেছেন তার উপর নির্ভর করে আপনি এই কোডটির ব্যবহারকারীর সাথে দুর্ঘটনাক্রমে অভ্যন্তরীণ বাস্তবায়ন প্রকাশ করতে পারেন।
২) আপনি যে ব্যক্তিগত পদ্ধতিগুলি জনসাধারণের পদ্ধতি হিসাবে পরীক্ষা করতে চান তা প্রকাশ করুন (সত্যিই ভাল ধারণা নয়)
যেমনটি প্রস্তাবিত এটি খুব দুর্বল অনুশীলন, এনক্যাপসুলেশন ধ্বংস করে এবং কোড ব্যবহারকারীদের অভ্যন্তরীণ বাস্তবায়ন প্রকাশ করে।
3) আরও ভাল পরীক্ষার পরিবেশ ব্যবহার করুন (সর্বোত্তম বিকল্প, যদি এটি উপলব্ধ থাকে)
ইক্লিপ্স ওয়ার্ল্ডে, 3 টুকরা ব্যবহার করে অর্জন করা যেতে পারে । সি # বিশ্বে আমরা আংশিক ক্লাস ব্যবহার করতে পারি । অন্যান্য ভাষা / পরিবেশের প্রায়শই একই রকম কার্যকারিতা থাকে, আপনার কেবল এটি সন্ধান করা উচিত।
অন্ধভাবে ধরে নিলে ১ বা ২. কেবলমাত্র বিকল্পগুলির ফলস্বরূপ উত্পাদন সফ্টওয়্যারটি পরীক্ষার কোড বা ন্যক্কারজনক ক্লাস ইন্টারফেসের দ্বারা স্ফীত হতে পারে যা জনসাধারণে তাদের নোংরা লিনেন ধুয়ে দেয়। * 8 ')
- সব মিলিয়ে - যদিও বেসরকারী প্রয়োগের বিরুদ্ধে পরীক্ষা না করা ভাল better