যদি আপনার ইউনিট পরীক্ষার কোডটি "গন্ধযুক্ত" থাকে তবে তা কি সত্যই গুরুত্ব দেয়?


52

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

দুর্বলভাবে ডিজাইন করা ("দুর্গন্ধযুক্ত") ইউনিট পরীক্ষার বিষয়ে আমার কতটা উদ্বিগ্ন হওয়া উচিত?


8
আপনি সর্বদা অনুলিপি করছেন এমন কোডটি ঠিক করা কতটা কঠিন হতে পারে?
জেফো

7
পরীক্ষাগুলিতে কোড গন্ধ সহজেই বাকী কোডগুলিতে লুকানো গন্ধের সূচক হতে পারে - কেন পরীক্ষাগুলি কেন তারা "বাস্তব" কোড না হিসাবে উপস্থিত হন?
হুরুসকোল

উত্তর:


75

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

এখানে কিছু সাধারণ ইউনিট পরীক্ষার গন্ধ রয়েছে:

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

গন্ধের গুরুত্ব হ'ল এগুলি ডিজাইন বা অন্যান্য মৌলিক সমস্যার দরকারী সূচক, যেমন "যেখানে ধোঁয়া আছে, সেখানে আগুন আছে"। কেবল পরীক্ষার গন্ধগুলির জন্য অনুসন্ধান করবেন না, পাশাপাশি তাদের অন্তর্নিহিত কারণগুলিও সন্ধান করুন।

অন্যদিকে এখানে ইউনিট পরীক্ষার জন্য কয়েকটি ভাল অভ্যাস রয়েছে:

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

2
"ইউনিট পরীক্ষাগুলি একটি ভিন্ন উদ্দেশ্যে পরিবেশন করে এবং বিভিন্ন নকশা তৈরি করে যা তাদের নকশাকে অবহিত করে" sions উদাহরণস্বরূপ, তাদের DAMP করা উচিত, অগত্যা DRY করা উচিত নয়।
জার্গ ডব্লু মিটাগ

3
@ জার্গ রাজি হয়েছেন, কিন্তু ড্যাম্প আসলে কি কোনও কিছুর পক্ষে দাঁড়ায়? : ডি
রেন হেনরিচস

5
@ রিন: বর্ণনামূলক এবং অর্থপূর্ণ বাক্যাংশ। এছাড়াও, সম্পূর্ণ DRY নয়। কোডেলটার.ওয়ার্ডপ্রেস.কম
রবার্ট হার্ভে

+1 টি। আমিও ড্যাম্পের অর্থ জানতাম না।
ইগার্কিয়া

2
@ আইরনকোড যদি আপনি অন্য সিস্টেমগুলির সাথে তার সংহতকরণের আশঙ্কা ছাড়াই বিচ্ছিন্নভাবে একটি সিস্টেমে কাজ করতে না পারেন, যা আমার কাছে সংকোচনের মতো গন্ধযুক্ত। এটি পরীক্ষার গন্ধ দীর্ঘ রানটাইমের মতো শনাক্ত করার উদ্দেশ্যটি হ'ল: তারা আপনাকে টাইট কাপলিংয়ের মতো ডিজাইনের সমস্যাগুলি সম্পর্কে অবহিত করে। প্রতিক্রিয়া "ওঁ, তারপরে সেই পরীক্ষার গন্ধটি অবৈধ" হওয়া উচিত নয়, এটি হওয়া উচিত "এই গন্ধটি আমাকে আমার নকশা সম্পর্কে কী বলে?" আপনার সিস্টেমের বাহ্যিক ইন্টারফেস নির্দিষ্ট করে এমন ইউনিট পরীক্ষাগুলি আপনার পরিবর্তনগুলি এর ভোক্তাদের সাথে সংহতিকে ভেঙে দেয় কিনা তা আপনাকে বলার জন্য পর্যাপ্ত হওয়া উচিত।
রেন হেনরিচস

67

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


17
+1 আপনি ব্যর্থ পরীক্ষাগুলি অগ্রাহ্য করার মুহুর্তে তারা কোনও মূল্য যুক্ত করে না।

19

আমি কয়েক দিন আগে আর্ট অফ ইউনিট পরীক্ষার পড়া শেষ করেছি । লেখক আপনার ইউনিট পরীক্ষাগুলিতে যতটুকু যত্ন নেওয়ার পক্ষে আপনি আপনার প্রোডাকশন কোডটি করেন।

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


4
+1 আপনাকে টেস্ট বজায় রাখতে হবে ঠিক যেমন উত্পাদন কোডের মতো
হামিশ স্মিথ

এই বিষয় সম্পর্কে আরও একটি খুব ভাল বই হ'ল জেরার্ড মেসজারোসের "xUnit পরীক্ষার ধরণ - পরীক্ষার কোডটি পুনর্নির্মাণ"।
অ্যাড্রিয়ানবাইমভাইজার

7

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

নীচের লাইন - এটির পরীক্ষা, এটি মনে করা সহজ। আপনি নিজেকে "গন্ধযুক্ত" কোড দিয়ে বিভ্রান্ত করতে চান না।


5
+1: ইউনিট পরীক্ষার কোডটি নিয়ে গোলমাল করবেন না। কিছু দুর্বোধ্য প্রশ্নগুলি ইউনিট পরীক্ষার কোডটিকে আরও "শক্তিশালী" তৈরি করার আশেপাশে ঘোরাফেরা করে যাতে কোনও প্রোগ্রামিং পরিবর্তন ইউনিট পরীক্ষায় ভঙ্গ না করে। মূর্খতা। ইউনিট পরীক্ষাগুলি ভঙ্গুর হতে ডিজাইন করা হয়েছে। তারা পরীক্ষার জন্য ডিজাইন করা অ্যাপ্লিকেশন কোডের চেয়ে কম শক্তিশালী হলে এটি ঠিক আছে।
এস .লট

1
@ এস.লোট উভয়ই আমার সাথে উত্তরের জন্য আরও ভাল ব্যাখ্যা করার কারণে একমত এবং একমত নন।
রেন হেনরিচস 18:25

1
@ রিন হেনরিচস: এগুলি প্রশ্নে বর্ণিত চেয়ে অনেক বেশি গন্ধযুক্ত দুর্গন্ধযুক্ত। "অনুলিপি এবং পেস্ট করুন" এবং "বেশ কুৎসিত দেখাচ্ছে" আপনার টেস্টগুলি যেখানে বিশ্বাসযোগ্য নয় তার বিবরণ গন্ধের মতো খারাপ লাগে না।
এস .লট

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

2
@ S.Lott BTW এই অনেক অবহেলিত চ্যাট বৈশিষ্ট্য :) ব্যবহার করার জন্য একটি নিখুঁত সুযোগ মত মনে হয়
Henrichs Rein

6

স্পষ্টভাবে. কিছু লোক বলে যে "কোনও পরীক্ষা নিখরচায় পরীক্ষার চেয়ে ভাল"। আমি দৃ strongly়ভাবে একমত নই - খারাপভাবে লিখিত পরীক্ষাগুলি আপনার বিকাশের সময়কে কমিয়ে দেয় এবং আপনি "ভাঙা" পরীক্ষা ফিক্সিংয়ের দিনগুলি নষ্ট করেন কারণ এগুলি প্রথম স্থানে ভাল ইউনিট পরীক্ষা ছিল না। আমার জন্য এই মুহুর্তে, আমার পরীক্ষাগুলি বোঝার পরিবর্তে মূল্যবান করার জন্য আমি যে দুটি বিষয়টির দিকে মনোনিবেশ করছি সেগুলি হ'ল:

Maintainability

আপনার ফলাফলটি পরীক্ষা করা উচিত ( কী ঘটে) পদ্ধতিটি নয় ( এটি কীভাবে হয়)। পরীক্ষার জন্য আপনার সেট আপটি যতটা সম্ভব বাস্তবায়ন থেকে ডিক্লোল করা উচিত: কেবল পরিষেবা কল ইত্যাদির জন্য ফলাফলগুলি সেট আপ করুন যা একেবারে প্রয়োজনীয়।

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

সুপাঠ্যতা

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

  • আপনার পরীক্ষাগুলির জন্য "বিন্যাস, অভিনয়, দৃ as়তা" স্টাইল বজায় রাখার চেষ্টা করুন। এটি আপনার সেট আপ এবং দৃশ্যের প্রত্যাশাগুলি, কার্য সম্পাদন করা থেকে, এবং ফলাফলটি দৃ .়তার সাথে পৃথক করে।
  • পরীক্ষায় প্রতি একটি লজিকাল দৃser়তা বজায় রাখুন (যদি আপনার পরীক্ষার নামটিতে "এবং" এটি থাকে তবে আপনাকে এটি একাধিক পরীক্ষায় বিভক্ত করতে হতে পারে)

উপসংহারে, আপনার "দুর্গন্ধযুক্ত" পরীক্ষাগুলি নিয়ে খুব উদ্বিগ্ন হওয়া উচিত - এগুলি কোনও মূল্য না দিয়ে আপনার সময় অপচয় করতে পারে।

আপনি বলেছেন:

ইউনিট পরীক্ষার জন্য সাধারণত বিভিন্ন "গন্ধযুক্ত হ্যাকস" যেমন স্ট্যাবিং ফাংশনগুলির প্রয়োজন হয়।

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


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

5

আপনার জন্য দুটি প্রশ্ন:

  • আপনি কি একেবারে ইতিবাচক যে আপনি যা পরীক্ষা করছেন বলে মনে করছেন তা পরীক্ষা করছেন?
  • যদি অন্য কেউ ইউনিট পরীক্ষার দিকে নজর দেয়, তারা কোডটি কী করার কথা বলে তা নির্ধারণ করতে পারবে ?

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

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


5

যখন ট্র্যাশের গন্ধ শুরু হয়, তখন এটি বের করার সময়। আপনার পরীক্ষার কোডটি আপনার উত্পাদন কোডের মতো পরিষ্কার হওয়া উচিত। তুমি কি এটা তোমার মাকে দেখাতে পারবে?


3

এখানে অন্যান্য উত্তর ছাড়াও।

ইউনিট পরীক্ষায় দুর্বল মানের কোডটি আপনার ইউনিট পরীক্ষা স্যুটে সীমাবদ্ধ নয়।

ইউনিট টেস্টিং দ্বারা ভরাট একটি ভূমিকা হ'ল ডকুমেন্টেশন।

ইউনিট টেস্ট স্যুট এমন কোনও এক জায়গা যা দেখায় যে কোনও এপিআই কীভাবে ব্যবহারের উদ্দেশ্যে তৈরি করা হয়েছে তা খুঁজে বের করে।

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


3

আমি প্রায় আমার উত্তর জমা করিনি কারণ কীভাবে এটি বৈধ প্রশ্ন হিসাবে কীভাবে পারা যায় তা নির্ধারণ করতে আমাকে কিছুটা সময় লেগেছিল।

প্রোগ্রামাররা "সেরা অভ্যাসে" জড়িত থাকার কারণগুলি নান্দনিক কারণে নয়, কারণ তারা "নিখুঁত" কোড চান। কারণ এটি তাদের সময় সাশ্রয় করে।

  • এটি সময় সাশ্রয় করে কারণ ভাল কোড পড়া এবং বুঝতে সহজ।
  • এটি সময় সাশ্রয় করে কারণ যখন আপনি একটি বাগ খুঁজে বার করতে চান তখন এটি সনাক্ত করা সহজ এবং দ্রুত হয়।
  • এটি সময় সাশ্রয় করে কারণ আপনি কোডটি প্রসারিত করতে চাইলে এটি করা সহজ এবং দ্রুত।

সুতরাং আপনার প্রশ্নটি (আমার দৃষ্টিকোণ থেকে) জিজ্ঞাসা করা হচ্ছে আমি কি নিজেকে সময় বাছাই বা কোড লিখি যা আমার সময় নষ্ট করবে?

এই প্রশ্নের কাছে আমি কেবলই বলতে পারি, আপনার সময়টি কতটা গুরুত্বপূর্ণ?

এফওয়াইআই: স্ট্যাবিং, মশকরা এবং বানরের প্যাচিংয়ের সবগুলি বৈধ ব্যবহার রয়েছে। তারা কেবল তখন "গন্ধ" দেয় যখন তাদের ব্যবহার যথাযথ হয় না।


2

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


2

আপনি যদি ভারী, নিম্ন-স্তরের কভারেজের জন্য যাচ্ছেন তবে কোনও গুরুতর পরিবর্তন করার সময় আপনি পণ্য কোডের মতো পরীক্ষার কোডে যত বেশি সময় বা তার বেশি সময় ব্যয় করবেন।

কোডটি সেট আপের জটিলতার উপর নির্ভর করে কোড আরও জটিল হতে পারে। (উদাহরণস্বরূপ একটি মিথ্যাটিকে নির্ভুলভাবে গড়ে তোলার চেষ্টা করার ভয়ঙ্কর দৈত্যের জন্য httpcontext.c اوس বনাম)

যদি না আপনার পণ্য এমন কিছু হয় যেখানে আপনি খুব কমই বিদ্যমান ইন্টারফেসগুলিতে পরিবর্তন আনেন এবং আপনার ইউনিট-স্তরের ইনপুটগুলি সেট আপ করা খুব সহজ হয় তবে আমি প্রকৃত পণ্য হিসাবে পরীক্ষাগুলি বোঝার বিষয়ে কমপক্ষে উদ্বিগ্ন।


0

কোড গন্ধগুলি কোডের মধ্যে কেবলমাত্র একটি সমস্যা যা পরে সময়ে সময়ে পরিবর্তন বা বোঝার প্রয়োজন হয়।

সুতরাং আমি মনে করি আপনি প্রদত্ত ইউনিট পরীক্ষার "কাছাকাছি" যেতে হলে কোড গন্ধ ঠিক করা উচিত, তবে আগে নয়।

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