আমি জানি এটি একটি খুব পুরানো প্রশ্ন, তবে আমি সেখানে আমার অভিজ্ঞতা যুক্ত করতে চাই আমি সম্প্রতি ইউনিট পরীক্ষার অভ্যাসটি পৃথক প্রকল্প থেকে একই প্রকল্পে পরিবর্তন করেছি।
কেন?
প্রথম আমি পরীক্ষার প্রকল্পের সাথে মূল প্রকল্পের ফোল্ডারের কাঠামো একই রাখার প্রবণতা রাখি। সুতরাং, আমার কাছে যদি একটি ফাইল থাকেProviders > DataProvider > SqlDataProvider.cs
তবে আমি আমার ইউনিট পরীক্ষার প্রকল্পগুলির মতো একই কাঠামো তৈরি করছিProviders > DataProvider > SqlDataProvider.Tests.cs
তবে প্রকল্পটি আরও বড় হয়ে ওঠার পরে একবার আপনি ফাইলগুলি এক ফোল্ডার থেকে অন্য ফোল্ডারে ঘুরে দেখেন, বা একটি প্রকল্প থেকে অন্য প্রকল্পে নিয়ে যান, তারপরে ইউনিট পরীক্ষার প্রকল্পগুলির সাথে এটি সমন্বয় করার জন্য খুব জটিল কাজ হচ্ছে।
দ্বিতীয়ত, ইউনিট পরীক্ষার শ্রেণিতে পরীক্ষার জন্য শ্রেণি থেকে নেভিগেট করা সর্বদা খুব সহজ নয়। এটি জাভাস্ক্রিপ্ট এবং পাইথনের পক্ষে আরও শক্ত।
সম্প্রতি, আমি অনুশীলন শুরু করেছি যে, আমার তৈরি প্রতিটি ফাইল (উদাহরণস্বরূপ SqlDataProvider.cs
) আমি টেস্ট প্রত্যয় সহ আরও একটি ফাইল তৈরি করছি, যেমনSqlDataProvider.Tests.cs
শুরুতে মনে হচ্ছে এটি ফাইল এবং গ্রন্থাগারের তথ্যসূত্রগুলি প্রস্ফুটিত করে দেবে, তবে দীর্ঘমেয়াদে, আপনি প্রথম নজরে চলন্ত ফাইল সিন্ড্রোমকে সরিয়ে ফেলবেন, এবং আপনি এটিও নিশ্চিত করবেন, পরীক্ষিত প্রার্থীদের প্রত্যেকটি ফাইলের একটি জোড় ফাইল থাকবে সঙ্গে .Tests
প্রত্যয়এটি আপনাকে পৃথক প্রকল্পের পরিবর্তে পরীক্ষার ফাইলে ঝাঁপিয়ে পড়া সহজে দেয় (কারণ এটি পাশাপাশি রয়েছে)।
এমনকি আপনি প্রকল্পের মাধ্যমে স্ক্যান করতে এবং বিজনেস বিধিগুলি লিখতে পারেন যা ক্লাস শনাক্ত করতে পারে না T টেস্ট ফাইল, এবং সেগুলি মালিককে প্রতিবেদন করুন। এছাড়াও আপনি সহজেই .Tests
ক্লাস টার্গেট করতে আপনার পরীক্ষা রানারকে বলতে পারেন ।
বিশেষত জে এবং পাইথনের জন্য আপনাকে বিভিন্ন রেফারেন্স থেকে আপনার রেফারেন্স আমদানি করতে হবে না, আপনি পরীক্ষার জন্য লক্ষ্য ফাইলের একই পথটি ব্যবহার করতে পারেন।
আমি এই অনুশীলনটি কিছু সময়ের জন্য ব্যবহার করছি এবং আমি মনে করি প্রকল্পের বনাম রক্ষণাবেক্ষণযোগ্যতা এবং প্রকল্পে নতুন আগতদের জন্য শেখার বক্ররেখার মধ্যে এটি খুব যুক্তিসঙ্গত বাণিজ্য বন্ধ is