ইউনিট পরীক্ষার কেসগুলি লেখার সময় আমরা মক অবজেক্টগুলি কেন লিখি?


11

আমরা বর্তমানে আমাদের প্রকল্পে ইউনিট পরীক্ষার মামলা লিখছি। ডাটাবেস পদ্ধতির জন্য বাস্তবায়ন বিদ্যমান এবং সূক্ষ্মভাবে কাজ করছে। এই ক্ষেত্রে আমাদের মক অবজেক্টগুলি লেখার দরকার কী? কোন নির্দিষ্ট কারণ আছে? আমি সরাসরি ডিএও প্রয়োগের পরীক্ষা করতে পারছি না কেন?

উত্তর:


6

আপনার ডাটাবেসে কলগুলি উপহাস করা উচিত নয় কারণ এটি উদ্দেশ্যকে পরাস্ত করবে। আপনি যা উপহাস করবেন তা উদাহরণস্বরূপ, কোনও পরিষেবা স্তর থেকে আপনার ডিএও-কে কল করুন। উপহাস আপনাকে বিচ্ছিন্নকরণের পদ্ধতিগুলি পরীক্ষা করতে দেয়।

বলুন যে আপনার মতো কোনও স্থাপত্য সহ একটি রেস্তোঁরা সিমুলেশন রয়েছে:

Cook <=> Server <=> Customer

আপনি প্রতিটি স্তর স্বাধীনভাবে পরীক্ষা করতে চান। এখানে Serverআপনার পরিষেবা স্তর এবং এটি Cookডিএও হিসাবে বিবেচনা করা যেতে পারে। Serverতুমি কি যখন পরীক্ষার উপহাস করতে চান Customer, এবং Cookযখন পরীক্ষার কি উপহাস করতে চান ServerCookইউনিট পরীক্ষা অবশ্য যাচাই করা উচিত যে বাস্তবায়ন হ্যামবার্গার ফিরে যখন হ্যামবার্গার নির্দেশ দেয়া হয় এবং না একটি রাবার টায়রা।


3
আমি এই বিবৃতিটির সাথে একমত নই আপনার ডাটাবেসে কল কল করা উচিত নয় কারণ এটি উদ্দেশ্যকে হারাবে। কারণ এটি খুব সাধারণ মনে হচ্ছে। অন্যরা যেমন নীচে বলে, আপনাকে বিচ্ছিন্নভাবে সমস্ত কিছু পরীক্ষা করার দরকার। আপনি যে জিনিসটির একক পরীক্ষা করছেন তা ডাটাবেস অ্যাক্সেস হলে অবশ্যই আপনার মন্তব্যটি সঠিক। আপনি যে জিনিসটির একক পরীক্ষা করছেন তা যদি ডাটাবেস অ্যাক্সেস না হয় তবে আপনার প্রথম বাক্যটি ভুল। আপনারা যা বলবেন তার সাথে আমি সম্মত। +0। :-)
পিটার কে।

6

এটি ডাটাবেসের সাথে একসাথে ব্যবসায়িক পরীক্ষা করা ঠিক ok তবে এই পরীক্ষাগুলি একীকরণ পরীক্ষা বলা হয় এমনকি যদি আপনি এগুলি সম্পাদন করতে নুনিট বা জুনিট বা phpunit ব্যবহার করেন।

ইউনিটেটগুলি স্পিজায়ালাইজড টেস্ট হয় যেখানে বিচ্ছিন্নকরণের (যেমন ডাটাবেস ছাড়াই বুয়েসনেলগিক) পরীক্ষা করা গুরুত্বপূর্ণ। এই বিচ্ছিন্নতা প্রয়োগের জন্য মক / নকল / স্তূপগুলি ব্যবহৃত হয়।


2

সহজভাবে: সত্যিকারের ডিএও পরীক্ষা করতে এবং ডাটাবেসের সামগ্রী নয়।

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

আপনি যদি সত্যই ডাটাবেস নিজেই পরীক্ষা করতে চান, যেমন: নির্দিষ্ট ডিএও পদ্ধতির প্রয়োগ যদি নির্দিষ্ট স্থিতিতে ডেটা রাখে, তবে এটিও সম্ভব। আর কী হ'ল সত্যই হতাশাগ্রস্ত ডেটা মডেলগুলি (EAV, নেস্টেড ট্রি সেট) যেখানে আপনি ডাটাবেস বুলেট-প্রমাণ অখণ্ডতা প্রদান আশা করতে পারবেন না সঙ্গে সাহায্যকারী। আপনার জীবনকে আরও সহজ করার জন্য ডিবিউনিট এ দেখুন ।


1

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


0

আপনি যে ক্লাসটি পরীক্ষা করছেন তা আলাদা করতে। অন্যথায় যদি পরীক্ষাটি ব্যর্থ হয় তবে কীভাবে আপনি কীভাবে জানেন যে সমস্যাটি আপনি যে শ্রেণিতে পরীক্ষা করছেন তা বা এর একটি নির্ভরতা।


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