টিডিডি করার সময় সমস্যা দেখা দেয়। বেশ কয়েকটি পরীক্ষা পাসের পরে কিছু শ্রেণি / মডিউল পরিবর্তনের ধরনগুলি পরিবর্তিত হয়। স্ট্যাটিক্যালি টাইপড প্রোগ্রামিং ল্যাঙ্গুয়েজে, যদি পূর্ববর্তী উপহাসকৃত বস্তুটি অন্য কোনও শ্রেণির পরীক্ষায় ব্যবহৃত হয় এবং প্রকারের পরিবর্তনটি প্রতিফলিত করতে সংশোধন না করা হয়, তবে সংকলনের ত্রুটি ঘটবে।
গতিশীল ভাষাগুলির জন্য, রিটার্নের ধরণের পরিবর্তনগুলি সনাক্ত করা যায়নি এবং অন্য শ্রেণির পরীক্ষাগুলি এখনও পাস করবে। নিশ্চয়ই এখানে একীকরণের পরীক্ষা থাকতে পারে যা পরে ব্যর্থ হতে পারে তবে ইউনিট পরীক্ষা ভুলক্রমে পাস হবে। কীভাবে উপায় এড়ানো যায়?
তুচ্ছ নমুনা নিয়ে আপডেট করা হচ্ছে (কিছু তৈরি ভাষার উপর) ...
সংস্করণ 1:
Calc = {
doMultiply(x, y) {return x * y}
}
//.... more code ....
// On some faraway remote code on a different file
Rect = {
computeArea(l, w) {return Calc.doMultipy(x*y)}
}
// test for Rect
testComputeArea() {
Calc = new Mock()
Calc.expect(doMultiply, 2, 30) // where 2 is the arity
assertEqual(30, computeArea)
}
এখন, সংস্করণ 2 এ:
// I change the return types. I also update the tests for Calc
Calc = {
doMultiply(x, y) {return {result: (x * y), success:true}}
}
... র্যাক্ট তখন রানটাইমের ক্ষেত্রে একটি ব্যতিক্রম ছুঁড়ে ফেলবে, তবুও পরীক্ষাটি সফল হবে।
class X
, তবে এর পরীক্ষাগুলিরclass Y
উপর নির্ভর করেX
এবং এইভাবে উত্পাদনের বিরুদ্ধে যা চলে তার চেয়ে আলাদা চুক্তির বিরুদ্ধে পরীক্ষা নেওয়া হয়।