আমি আমার বর্তমান প্রকল্পের জন্য কিছু ইউনিট পরীক্ষা লিখতে শুরু করেছি। যদিও এর সাথে আমার আসলে অভিজ্ঞতা নেই। আমি প্রথমে সম্পূর্ণরূপে "এটি পেতে" চাই, তাই আমি বর্তমানে আমার আইওসি ফ্রেমওয়ার্ক বা একটি উপহাস লাইব্রেরি ব্যবহার করছি না।
আমি ভাবছিলাম ইউনিট পরীক্ষায় অবজেক্টস কনস্ট্রাক্টরদের নাল আর্গুমেন্ট সরবরাহ করার ক্ষেত্রে কোনও সমস্যা আছে কিনা। আমাকে কিছু উদাহরণ কোড সরবরাহ করুন:
public class CarRadio
{...}
public class Motor
{
public void SetSpeed(float speed){...}
}
public class Car
{
public Car(CarRadio carRadio, Motor motor){...}
}
public class SpeedLimit
{
public bool IsViolatedBy(Car car){...}
}
তবুও অন্য একটি গাড়ি কোড উদাহরণ (টিএম), কেবল প্রশ্নের গুরুত্বপূর্ণ অংশগুলিতে হ্রাস পেয়েছে। আমি এখন একটি পরীক্ষা কিছু লিখেছি:
public class SpeedLimitTest
{
public void TestSpeedLimit()
{
Motor motor = new Motor();
motor.SetSpeed(10f);
Car car = new Car(null, motor);
SpeedLimit speedLimit = new SpeedLimit();
Assert.IsTrue(speedLimit.IsViolatedBy(car));
}
}
পরীক্ষা ঠিকঠাক হয়। SpeedLimitএকটি প্রয়োজন Carএকটি সঙ্গে Motorযাতে এর জিনিস করতে হবে। এটি মোটেও আগ্রহী CarRadioনয়, তাই আমি এটির জন্য শূন্যতা সরবরাহ করেছি।
আমি ভাবছি পুরোপুরি নির্মাণ না করে সঠিক কার্যকারিতা সরবরাহকারী কোনও বিষয়টি এসআরপি বা কোড গন্ধ লঙ্ঘন কিনা। আমার এই উত্তেজনাপূর্ণ অনুভূতিটি এটি অনুভব করে তবে speedLimit.IsViolatedBy(motor)তা ঠিক অনুভব করে না - একটি গতির সীমা গাড়ি দ্বারা নয়, মোটর দ্বারা লঙ্ঘিত হয়। ওয়ার্কিং কোড ইউনিট টেস্টের জন্য সম্ভবত আমার আলাদা দৃষ্টিভঙ্গি দরকার কারণ পুরো উদ্দেশ্যটি কেবলমাত্র একটি অংশের পরীক্ষা করা।
ইউনিট পরীক্ষায় নাল দিয়ে বস্তুগুলি তৈরি করা কি কোনও কোডের গন্ধে পরীক্ষা করে?
nullরেডিও দিয়ে, গতির সীমাটি সঠিকভাবে গণনা করা হয়েছে। এখন আপনি রেডিওর সাথে গতির সীমাটি বৈধ করার জন্য একটি পরীক্ষা তৈরি করতে চাইতে পারেন ; আচরণের পার্থক্য থাকলে ...
Motorসম্ভবত এটিকে মোটেও নেওয়া উচিত নয়speed। এটির বর্তমান এবং এর উপর ভিত্তি করে একটিthrottleএবং গণনা করা উচিত । এটি একটি বর্তমান গতিতে সংহত করার জন্য এটি ব্যবহার করা এবং এটি আবার সংকেত হিসাবে ফিরিয়ে আনাই গাড়ীটির কাজ ... তবে আমার ধারণা, আপনি যাইহোক বাস্তবেবাদের পক্ষে ছিলেন না, আপনি কি ছিলেন?torquerpmthrottleTransmissionrpmMotor