"স্টাব" কী?


116

তাই, টিডিডিতে আরও বেশি পেতে আমার নতুন বছরের রেজোলিউশনটি ধরে রেখে আমি এখন রাইনো মক্সের সাথে আরও কাজ শুরু করছি ।

আমি যা করতে আগ্রহী তা হ'ল আমি নিশ্চিত হয়েছি যে আমি যা যাচ্ছি তা সত্যই প্রকাশ করা উচিত, তাই আমি এতদূর যা কিছু দেখেছি সে সম্পর্কে আমার বোধগম্যতা যাচাই করতে চেয়েছিলাম (এবং আমি মনে করি এটি এখানে হিসাবে উত্থাপন করা ভাল হবে) সম্পদ)।

"স্টাব" কী?


6
প্রথমে আপনি একটি প্রশ্ন জিজ্ঞাসা, এবং তারপর আপনি উত্তর দিতে?
এমপি

17
প্রশ্নে বর্ণিত হিসাবে - আমি আমার বোঝার সঠিক হওয়া যাচাইয়ের সন্ধান করছি, আমি উত্তরটি এখানে চেয়েছি (এটি আমার হোক বা না হয়) এই খুব-জিজ্ঞাসিত-তবে-খুব কমই উত্তর দেওয়া প্রশ্নের উত্তর সরবরাহ করতে হবে: )
রব কুপার

42
এছাড়াও নিজের প্রশ্নের উত্তর দেওয়া এফএকিউতে সাইটটি ব্যবহারের একটি বৈধ উপায় হিসাবে নির্দেশিত - বাস্তবে এটি উত্সাহিত করা উচিত।
এরিক ফোর্বস

আপনার নিজের প্রশ্নের উত্তর দেওয়া ভাল, যদিও প্রশ্নটিতে নিজেই কিছুটা বেশি শব্দ (আত্মজীবনী) রয়েছে এবং উত্তরটি খুঁজে পাওয়ার জন্য কোনও প্রয়াস দেখায় না, উত্তরটি খুঁজে পাওয়ার চেষ্টা করার জন্য ব্যক্তি কী করেছে তার কোন ঝোঁক নেই।
এরিক

উত্তর:


112

মার্টিন ফওলার এই বিষয়ে একটি দুর্দান্ত নিবন্ধ লিখেছিলেন । এই নিবন্ধ থেকে:

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

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

এটিকে আমার নিজের কথায় বলতে: মক অবজেক্টগুলি তাদের উপর কিছু নির্দিষ্ট পদ্ধতি আহ্বান করার "প্রত্যাশা" করে এবং সাধারণত তাদের প্রত্যাশা পূরণ না হলে ইউনিট পরীক্ষা ব্যর্থ করে দেয়। স্টাব অবজেক্টগুলি ক্যানড প্রতিক্রিয়া সরবরাহ করে (এবং সহায়ক লাইব্রেরিগুলি দ্বারা স্বয়ংক্রিয়ভাবে তৈরি করা যেতে পারে) তবে সাধারণত ইউনিট পরীক্ষাটি ব্যর্থ হওয়ার কারণ হয় না । এগুলি সাধারণত ব্যবহার করা হয় যাতে আপনি যে জিনিসটি পরীক্ষা করছেন সেটি তার কাজ করার জন্য প্রয়োজনীয় ডেটা পায়।


2
তাহলে জাল জিনিস এবং sutbs মধ্যে পার্থক্য কি? আপনি যেমন বলেছিলেন, তাদের কার্যকর করার একই ভূমিকা রয়েছে, তাই না?
এলকেএম

4
@ এলকেএম একটি জাল বস্তু একটি আসল অবজেক্ট যা বাস্তব কার্যকারিতা প্রয়োগ করে এবং জিনিসগুলি করে। স্টাবগুলি কেবল "ক্যানড উত্তর" যেমন। হার্ড-কোডেড জেএসওনের ফলাফল যা ওয়েব সার্ভার থেকে ফিরে আসবে তা নকল করে।
ব্যবহারকারীর 34344977

31

একটি "স্টাব" একটি ইন্টারফেসের একটি বাস্তবায়ন যা ডেটা / কোনও ধরণের প্রতিক্রিয়া সরবরাহ করার জন্য বিদ্যমান। উদাহরণ স্বরূপ:

  • একটি ডেটাসেট
  • ব্যবহারকারীদের তালিকা
  • একটি এক্সএমএল ফাইল

সাধারণত এটি অন্য পরিষেবা দ্বারা সরবরাহ করা হবে (এটি ওয়েব পরিষেবা, অন্য অ্যাপ্লিকেশন, একটি ডাটাবেস) তবে কোডটির পরীক্ষামূলকতার উন্নতি করার জন্য , ফলাফলগুলি "নকল" হয়।

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

নিবন্ধসমূহ পৃথক ঠাট্টা যে তারা প্রতিনিধিত্ব করেন এবং পরীক্ষা করার জন্য ব্যবহার করা হয় রাষ্ট্র , একটি বস্তুর যেহেতু একটি উপহাস তার পরীক্ষা মিথষ্ক্রিয়া


আপনার উত্তরের জন্য ধন্যবাদ, তবে আমি এখনও বুঝতে পারি না: "একটি ইন্টারফেসের প্রয়োগ" ??
বিকেএসপুরগাঁও

6

আমি বিশ্বাস করি "স্টাব" স্টার্টআপ ব্লক থেকে আসে। এটি কোডের সেই অংশগুলির সাথে উল্লেখ করতে ব্যবহৃত হয় যা আপনাকে, বিকাশকারীকে শুরু করতে সহায়তা করার জন্য স্বয়ংক্রিয়ভাবে উত্পন্ন হয়।


1
আমি এটি সঠিক মনে করি না। সম্ভবত এটি বাড়ি নির্মাণে এই অনুশীলন থেকে আসে: শিকারী.com
কি-

3

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


এই উত্তরটি আরও বিশদভাবে ব্যাখ্যা করলে আরও ভাল হবে: স্টাব পদ্ধতির উদ্দেশ্য কী? এটা কিভাবে ব্যবহার করা হয়? এটা কেন গুরুত্বপূর্ণ?
ইভান ওয়েসবার্গ

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

1
দুর্দান্ত যে আপনি শিখছেন! আপনার নিজের আসল উত্তরটি সম্পাদনা করা উচিত যাতে ভবিষ্যতে পাঠকরা মন্তব্যগুলিতে পোস্ট করার পরিবর্তে এ থেকে সহজেই তা শিখতে পারেন। অতিরিক্তভাবে - আপনি যদি কোনও বিষয়ে নিশ্চিত না হন তবে আপনি কেন এটি সম্পর্কিত কোনও অনুমোদনমূলক উত্তর পোস্ট করছেন?
ইভান ওয়েসবার্গ

1
স্ট্যাক ওভারফ্লো-তে আপনি যদি কোনও স্ব-শিক্ষানবিস হন তবে তা ঠিক। এটি কোনও স্ট্যান্ডার্ড ফোরাম নয়। দেখুন: stackoverflow.com/tour
ইভান Weissburg

1
গাইড এবং পরামর্শের জন্য আপনাকে অনেক ধন্যবাদ। এটা সত্যিই কৃতজ্ঞ!
নাসেরার

3

আমি সম্প্রতি প্রশ্নের মুখোমুখি হয়েছি এবং স্বীকার করেছি যে স্টাব এবং ড্রাইভারের মধ্যে এই তুলনাটি সত্যই পরিষ্কার এবং সহায়ক:

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

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

স্টাব এবং ড্রাইভারের মধ্যে পার্থক্য থেকে


0

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

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