রাইনো মোকসগুলিতে মোক এবং স্টাবগুলির মধ্যে পার্থক্য কী?


149

আমি এটি নিয়ে যথেষ্ট খেলিনি এবং সাধারণত মোক ব্যবহার করি না, তবে আমি ভাবছি যে এই দুটিয়ের মধ্যে কী পার্থক্য রয়েছে এবং রাইনো মকসে একটি বা অন্যটি কখন ব্যবহার করবেন।

হালনাগাদ:

আমার প্রশ্নের উত্তর আমি আইয়েন্দীর কথায়ও পেয়েছি :

স্টাব এবং বিদ্রূপের মধ্যে পার্থক্য

আপনি এই নিবন্ধে এই শর্তগুলির প্রকৃত সংজ্ঞা পেতে পারেন: মকস অরেনট স্টাবস নয় । আমি রাইনো মকসের দৃষ্টিকোণ থেকে পার্থক্যের দিকে মনোনিবেশ করতে চাই।

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

আপনি যদি পরীক্ষার অধীনে কোডটির আচরণটি যাচাই করতে চান, আপনি উপযুক্ত প্রত্যাশা সহ একটি মোক ব্যবহার করবেন এবং তা যাচাই করবেন। আপনি যদি এমন কোনও মান পাস করতে চান যা একটি নির্দিষ্ট উপায়ে অভিনয় করার প্রয়োজন হতে পারে তবে এই পরীক্ষার কেন্দ্রবিন্দু না হয় তবে আপনি স্টাব ব্যবহার করবেন।

গুরুত্বপূর্ণ: একটি স্টাব কখনই কোনও পরীক্ষায় ব্যর্থ হয় না।


উত্তর:


148

এই হিসাবে

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

মক অবজেক্টগুলি প্রত্যাশা সংজ্ঞায়িত করতে ব্যবহৃত হয় যেমন: এই দৃশ্যে আমি আশা করি পদ্ধতি এ () এ জাতীয় এবং এই জাতীয় পরামিতিগুলির সাথে ডাকা হবে। মকস এমন প্রত্যাশাগুলি রেকর্ড করে যাচাই করে।

অন্যদিকে স্টাবগুলির একটি আলাদা উদ্দেশ্য রয়েছে: তারা প্রত্যাশাগুলি রেকর্ড বা যাচাই করে না, বরং আমাদের পরীক্ষার পরিস্থিতিটি ব্যবহার করার জন্য "নকল" অবজেক্টের অবস্থা, অবস্থা "প্রতিস্থাপন" করার অনুমতি দেয় ...


আমি আরও একটি দরকারী পোস্ট পেয়েছি যা এই প্রশ্নের জন্য স্বীকৃত উত্তরের মতো একই বার্তাটির প্রতিধ্বনি দেয় - মার্টিনফাউলার / পার্টিকেলস / মকস অ্যারেন্টস্টবসHtml
singh1469

20

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

নিবন্ধসমূহ

স্টাব একটি ক্ষুদ্র জাল বস্তু যা আপনার পরীক্ষাটি ফাংশন কলটিকে কাজ করতে পরামিতি হিসাবে ব্যবহার করতে পারে। এটি আমাদের পরীক্ষার অধীনে ফাংশনটির আচরণ যাচাই করতে দেয়। এটি আমাদের কোনও পার্শ্ব প্রতিক্রিয়া যাচাই করতে দেয় না, কারণ স্টাবের কোনও প্রয়োগ নেই।

ঠাট্টা

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

উদাহরণস্বরূপ, বলুন যে আমাদের কাছে একটি মক ব্যবহারকারীর অবজেক্ট ছিল, এবং আমরা যাচাই করতে চেয়েছিলাম যে আমাদের সেশন.লগিন পদ্ধতিটি কাজ করেছে, আমরা সম্ভবত এটি ব্যবহারের পরীক্ষা করতে চাই last আমরা একটি মক ব্যবহারকারী তৈরি করতে পারি যা এই পদ্ধতিটি কার্যকর করে। আমরা যখন সেশন.লগিনকে কল করি তখন আমরা দৃsert়ভাবে বলতে পারি যে ব্যবহারকারীর ক্লায়েন্ট লগডইনটিতে আমাদের প্রত্যাশা করা রাজ্য রয়েছে।

যোগফল

মক হ'ল একটি বাস্তবায়ন সহ্যকারী স্টাব, যা আমাদের পার্শ্ব প্রতিক্রিয়াগুলি পরীক্ষা করতে দেয়।

এই পার্থক্য কি এখনও গুরুত্বপূর্ণ?

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

তারা পরীক্ষার জন্য কিছুটা ভিন্ন পদ্ধতির প্রতিনিধিত্ব করে। একটি মোক একটি ছুরার মতো লেখা যেতে পারে। একটি স্টাব সাধারণত একটি উপহাস মধ্যে প্রসারিত করা যেতে পারে।

আপনার কোনটি ব্যবহার করা উচিত?

আপনি দেখতে পাচ্ছেন যে আপনি স্টাবগুলি তৈরি করা শুরু করেছেন, তারপরে আপনি দেখতে পাবেন যে আপনার কয়েকটি বস্তুর জন্য আপনাকে পূর্ণ বিদ্রূপ তৈরি করতে হবে। আপনি যেতে যেতে সবকিছুকে বিদ্রূপ করতে চাইতে পারেন, বা প্রয়োজনের দিক দিয়ে আপনি কেবল উপহাস করতে চান।


7

মোক এবং স্টাবের মধ্যে পার্থক্য: স্টাবের সাহায্যে আপনি আপনার ইউনিট পরীক্ষার ইনপুট ঠিক করেন: সুতরাং আপনার ইউনিট পরীক্ষাটি কোনও পদ্ধতি প্রয়োগের পুনর্লিখন করে জাল বস্তুর আচরণ স্থির করে স্টাব এবং স্টাবের উপর দৃser়তা দেয় না। মোক দিয়ে, আপনি আপনার ইউনিট পরীক্ষার আউটপুট ঠিক করেন: সুতরাং আপনার ইউনিট পরীক্ষাটি আপনার মক অবজেক্টের অভ্যন্তরীণ মিথস্ক্রিয়া পরীক্ষা করে আপনার মকিং অবজেক্টের উপর একটি প্রত্যাশা তৈরি করে।


আপনি বলে যাচ্ছেন বলে মনে হচ্ছে যে আপনার পরীক্ষায় একটি মকের আউটপুট "চেক" করা উচিত। আপনি যদি যা বলছেন তা যদি হয় তবে আপনি ভুল। একটি মোককে পরীক্ষা করার কথা নয়; এটি সেখানে রয়েছে যাতে আপনি অন্যান্য কোড পরীক্ষা করতে পারেন । বা আপনার শেষ বাক্যটির অর্থ অন্য কিছু?
অ্যান্ড্রু বারবার

1
হাই অ্যান্ড্রু, আমি মকের সাথে যেমন লিখেছি আপনি নিজের পরীক্ষার আউটপুট ঠিক করেন যাতে আপনি এটি পরীক্ষা করেন না wise অন্যদিকে আমি লিখেছি যে মক আপনাকে মিথস্ক্রিয়া পরীক্ষা করতে দেয় (প্রত্যাশার আচরণ ... ;-)
হাসান বোউটাঘা

1
ঠিক আছে, এটি আরও অর্থবোধ করে। স্পষ্টতার জন্য ধন্যবাদ!
অ্যান্ড্রু বারবার

> স্টাবের প্রতি দৃ .়তা দেয় না কেন বহু আসক্তি গ্রন্থাগারগুলিতে এখনও পরামিতিগুলি should have been called withজোর দেওয়ার পদ্ধতি রয়েছে methods stub
Hellboy

5

মোক ফ্রেমওয়ার্কের ক্ষেত্রে - সেটআপ পদ্ধতিটি স্টুব যেখানে ভেরিফাই পদ্ধতি হিসাবে মক হয়


0

একটি বিষয় যা আমি খুব লক্ষ্য করেছি তা হ'ল আমি যখন মকরেপোসিটিরি.জেনারেটমক ব্যবহার করি তখন সেই কলটি বিরত রাখতে আমার স্পষ্টভাবে একটি নির্দিষ্ট পদ্ধতি কলটিতে প্রত্যাশা সেট করা দরকার। স্টাবগুলি সহ, যেকোন পদ্ধতিটি ভার্চুয়াল হওয়ার পরে এটি স্বয়ংক্রিয়ভাবে বিরত হবে বলে মনে হয়।

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