ডিডিডি করার সময় আমাদের কী সত্তা ও মানকে অবহেলা করা উচিত?


9

একটি পড়ার পর কয়েক নিবন্ধ সম্পর্কে Newable বনাম ইঞ্জেকশনভিত্তিক বস্তু এবং কিভাবে এই ধারণা DDD এর সেবা, সত্ত্বা এবং মান বস্তু সঙ্গে সম্পর্কযুক্ত, আমি বিশেষ করে আমার ইউনিট পরীক্ষা আমার কোডে newables ব্যবহার সম্পর্কে কিছু সন্দেহ সঙ্গে রাখা হয়।

নবীনদের প্রধান প্রার্থী হলেন সত্তা এবং মান অবজেক্টের অর্থ এই যে অন্যান্য নির্ভরশীলতার মধ্যে এই নির্ভরশীলতাগুলি ইনজেকশনের পরিবর্তে একজনকে কেবল newএই বস্তুর একটি উদাহরণ দেওয়া উচিত এবং সেগুলি সরাসরি কোডে ব্যবহার করা উচিত ।

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

এখন যদি কোনও সত্ত্বা বা কোনও মান অবজেক্টের উপর কোনও পরিষেবা কাজ করে তবে আমি কী সত্তা বা মান বস্তুটিকে উপহাস করব এবং উপহাসকে পরিষেবাতে পৌঁছে দেব (বিদ্রূপের interfaceজন্য মান বস্তু বা সত্তাগুলির জন্য প্রয়োজন হবে যার বিরুদ্ধে উকিল বলে মনে হচ্ছে)?

বা আমি কি কেবল newএকটি সত্তা / মান অবজেক্ট এবং পরিষেবাটিতে একটি কংক্রিট বাস্তবায়ন পাস করব এবং এইভাবে কেবলমাত্র একটি ইউনিট পরীক্ষার ইউনিট পরীক্ষার নীতি লঙ্ঘন করব?



এটি নির্ভর করে যদি আপনি কোনও ধ্রুপদী বা মকিস্ট পরীক্ষক: মার্টিনফাউলার্স
মকস এন্টারস্টাবস

@ জেওলেট এক ক্লাসিস্ট কিছু উপহাস করবেন না; একজন উপহাসক সম্ভবত পরিষেবাগুলি, সংগ্রহশালা এবং কারখানাগুলি (যা "ইনজেক্টেবলস"), কখনও সত্তা বা মান অবজেক্ট (যা "নতুনযোগ্য") উপহাস করে।
রোগারিও

@ রোগিরিও, আপনি যখন পরিষেবাগুলি বলবেন; আপনি কি অ্যাপ্লিকেশন পরিষেবা বা ডোমেন পরিষেবাদি বলতে চান?
w0051977

@ সোঙ্গো, আপনি কী সিদ্ধান্ত নিয়েছেন? তুমি কি ঠাট্টা করছ: সত্তা; মান অবজেক্টস এবং ডোমেন পরিষেবাদি?
w0051977

উত্তর:


11

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

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

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

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

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


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

0

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

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

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