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