ইউনিট পরীক্ষার বৈশিষ্ট্যগুলিতে সাধারণত জনসাধারণের পদ্ধতিগুলির প্রয়োজন হয় কেন?


12

আমি সম্প্রতি উল্লেখ করেছি যে .ET জোটে একটি সুরক্ষিত পদ্ধতিতে [TestInitialize] যুক্ত করা সম্মানিত হয় নি, তবে আমি যদি পদ্ধতিটি জনসমক্ষে প্রচার করি তবে এটি ইউনিট পরীক্ষার রানার (এই ক্ষেত্রে পুনঃ ভাগ করা) দ্বারা ডাকা হয়েছিল। আমি অতীতে পরীক্ষার পদ্ধতিতে এটি বেশ কয়েকবার লক্ষ্য করেছি।

প্রযুক্তিগতভাবে বলতে গেলে, এটি একটি সরল পদ্ধতি হিসাবে কোনও ব্যক্তিগত পদ্ধতির প্রতিফলন করা ঠিক ততটাই সহজ। প্রকৃতপক্ষে, প্রতিচ্ছবি হ'ল একক পদ্ধতিতে ব্যক্তিগত পরীক্ষার একক হিসাবে নিযুক্ত।

তাহলে কেন আমার সমস্ত ইউনিট পরীক্ষার পদ্ধতিগুলি সর্বজনীন করা দরকার?


2
এটা সত্যিই একটি ভাল প্রশ্ন। আমি শুনেছি শুধুমাত্র ভাল যুক্তি হ'ল নীতিটি অনুসরণ করে "ইন্টারফেসের জন্য প্রোগ্রাম, বাস্তবায়নের নয়," সলাইড নীতিগুলির অংশ।
রবার্ট হার্ভে

9
আমি মনে করি না যে সে তার ক্লাস পরীক্ষা করার কথা বলছে, তিনি প্রকৃত পরীক্ষার পদ্ধতিগুলির বিষয়ে কথা বলছেন যা পরীক্ষার কাঠামোর দ্বারা ডাকা হয়।
jtiger

1
জাভাতে রবার্টহারভে, অনুরূপ বিধিনিষেধের কারণ (উদাহরণস্বরূপ ইউনাইটে) হ'ল ফ্রেমওয়ার্ক ডিজাইনাররা এমন কোনও গোলমাল করতে চান না setAccessibleযা কিছু কাস্টম সিকিউরিটি
ম্যানেজার

1
আপনার বিবেচনায় নেওয়া দরকার যে এই নকশার সিদ্ধান্তটি ব্যাপক ব্যবহারের জন্য লক্ষ্যযুক্ত একটি সাধারণ উদ্দেশ্যে কাঠামোর জন্য হয়েছিল। এরকম ক্ষেত্রে ডিজাইনারের পক্ষে সবচেয়ে খারাপ ধারণা করা এবং প্রস্তুত করা কেবল নিরাপদ। এটি যদি ছিল তবে আমি জানি না, কিছু সংস্থার অভ্যন্তরীণ কাঠামো (যেখানে কারও কাছে কাঙ্ক্ষিত সুরক্ষা নীতিগুলির গ্যারান্টি দেওয়ার সুযোগ থাকতে পারে), বা যদি এটি সংকীর্ণ, বিশেষ উদ্দেশ্যে পরিচালিত কোনও সরঞ্জাম ("অ্যাক্সেসযোগ্য সদস্যদের জন্য দর্শক" মনে করেন), ডিজাইনার অন্যান্য বিকল্প বিবেচনা করতে হবে
ganat

2
@ গ্রেগবার্গার্ট এই আচরণটি নুনিতের মধ্যে পাওয়া যায় এবং সম্ভবত অন্যান্য পরীক্ষার কাঠামো মাইক্রোসফ্ট লিখেনি। অবশ্যই এই প্রশ্নটি জিজ্ঞাসা করার পরের বছরগুলিতে আমি। নেট সম্পর্কে আরও অনেক কিছু বুঝতে পেরেছি, তবে আমি এখনও এটি একটি ন্যায্য প্রশ্ন মনে করি, এবং মন্তব্যে কিছু ভাল আলোচনা রয়েছে।
জাস্টিন ডিয়ারিং

উত্তর:


2

আপনি পরীক্ষা করা উচিত কি বর্গ করে না কিভাবে এটা এটা আছে।

যতদূর "বাইরের বিশ্ব" সম্পর্কিত, ক্লাসটি প্রকাশ্যে উপলভ্য করে তোলে; আপনার পরীক্ষার কাঠামো একই ধারণা তৈরি করছে।

পাবলিকের চেয়ে "কম" কোনও কিছুর পরীক্ষা করে আপনি শ্রেণীর অভ্যন্তরীণ বাস্তবায়নের বিষয়ে আগ্রহী, যা একটি খারাপ ধারণা।


নোট করুন যে প্রশ্নটি পরীক্ষার পদ্ধতিগুলির বিষয়ে, এবং পরীক্ষার অধীনে থাকা সিস্টেমগুলির পদ্ধতিগুলির বিষয়ে নয়। যদিও এটি সত্য যে ওপি যুক্তি দেখিয়েছেন যে আপনি পাবলিকের চেয়ে "কম" পরীক্ষা করার জন্য প্রতিবিম্বটি ব্যবহার করতে পারেন, এটি ব্যক্তিগত পদ্ধতিতে অ্যাক্সেসের জন্য কাঠামোর কাঠামোর দক্ষতা সম্পর্কে একটি যুক্তি। পরীক্ষার কাঠামোর পরীক্ষার পদ্ধতিগুলি খুঁজে পাওয়ার জন্য প্রতিবিম্বটি ব্যবহার করতে হয় (যেগুলি একটি গুণ দ্বারা চিহ্নিত করা হয়), এবং এইভাবে মনে রেখে প্রতিচ্ছবি অবশ্যই ব্যবহার করা উচিত ... "আমাকে কেন আমার ইউনিট পরীক্ষার সমস্ত পদ্ধতি জনসম্মুখে প্রকাশ করা দরকার?"
থেরোট

পরীক্ষার পদ্ধতিতে ব্যক্তিগত পদ্ধতিগুলি অ্যাক্সেস করার ক্ষমতা রয়েছে; প্রতিবিম্ব সঙ্গে, কিছু সম্ভব। আমি এই প্রশ্নটি আরও করার [অন] কাঙ্ক্ষিততা সম্পর্কে আরও দেখছি।
ফিল্ড ডাব্লু।

0

একটি সাধারণ নিয়ম হিসাবে, কেবলমাত্র সর্বজনীন পদ্ধতিতে অ্যাক্সেস করা ভাল - আপনি যখন কোনও শ্রেণি তৈরি করেন, তখন অন্য কোডগুলিও আপনার কোডটি অ্যাক্সেস করতে পারে সে সম্পর্কেও আপনি চুক্তিটি তৈরি করছেন। উত্তর সম্ভবত সম্ভবত এটি একটি সম্মেলন কারণ।


1
এটি আসলে প্রশ্নের উত্তর দেয় না।
রাবারডাক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.