বাহ্যিক ফাইলগুলি থেকে ইউনিট পরীক্ষার জন্য ডেটা লোড করা বা না লোড করা


17

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

আমি যে ট্রেড অফের সাথে নিয়মিত লড়াই করে যাচ্ছি তা হ'ল:

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

এর মধ্যে একটিও কি একটি বিরোধী নিদর্শন?


কি ধরনের তথ্য?
জন রেড

@ জোনরিড: বেশিরভাগ পাঠ্য।
DudeOnRock

উত্তর:


11

আপনার প্রশ্নের সরাসরি জবাব দেওয়ার জন্য - না, আমি সঠিকভাবে ব্যবহার করার সময় বিশ্বাস করি না হয় কোনও একটি অ্যান্টি-প্যাটার্ন।

--- আরও ভার্জোজ উত্তর ---

আমার অভিজ্ঞতা থেকে, আমি মনে করি এটি আপনার পরীক্ষার লক্ষ্যের উপর নির্ভর করে। এখানে আমি অতীতে ব্যবহৃত থাম্বের নিয়ম এবং এটি আমাকে সিদ্ধান্ত নিতে সহায়তা করেছে:

আপনি কি আসলে কোডের একটি ছোট ইউনিট পরীক্ষা করছেন? (একটি সত্য ইউনিট পরীক্ষা)

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

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

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

এত দীর্ঘ উত্তর সংক্ষিপ্ত, আপনি কী পরীক্ষা করছেন এবং কেন তা নির্ভর করে। উভয় পদ্ধতিরই কার্যকর এবং তাদের স্থান রয়েছে - আপনার পরিস্থিতির জন্য কোনটি সবচেয়ে ভাল কাজ করে তা চয়ন করুন।


9

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

অবশ্যই, প্রযুক্তিগতভাবে আপনার কাছে এমন একটি আশ্বাস নেই যা sinus.wavসত্যই সাইনাস টোন ধারণ করে, তবে আপনি যেমনটি বলেছিলেন, উত্সের 100,000 প্রশস্ততার মান তালিকাভুক্তি আপনাকে বাস্তবে তা দেয় না - বাস্তবে, এটি আরও খারাপ , কারণ আপনি অন্তত চেক করার জন্য কোনও অডিও প্লেয়ারের সাথে একটি বাহ্যিক ফাইল খেলতে পারে, সোর্স কোডে সমাহিত ডেটা মানগুলি সহ কিছুই করা অসম্ভব।

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