আমি একটি বড় জ্যাঙ্গো প্রকল্পের জন্য কার্যকর ইউনিট পরীক্ষা লেখার পক্ষে লড়াই করছি। আমার কাছে যুক্তিসঙ্গতভাবে ভাল পরীক্ষার কভারেজ রয়েছে তবে আমি বুঝতে পেরেছি যে পরীক্ষাগুলি আমি লিখছি তা অবশ্যই একীকরণ / গ্রহণযোগ্যতা পরীক্ষা, ইউনিট পরীক্ষার মোটেই নয়, এবং আমার আবেদনের গুরুত্বপূর্ণ অংশ রয়েছে যা কার্যকরভাবে পরীক্ষা করা হচ্ছে না। আমি এই ASAP ঠিক করতে চাই।
এখানে আমার সমস্যা। আমার স্কিমা গভীরভাবে সম্পর্কিত এবং ভারী সময়-ভিত্তিক, আমার মডেলটিকে উচ্চ অভ্যন্তরীণ সংযোগ এবং প্রচুর রাজ্য দেয়। সময় ব্যবধানের উপর ভিত্তি করে আমার মডেল পদ্ধতিগুলির অনেকগুলি কোয়েরি auto_now_addএবং টাইমস্ট্যাম্পড ক্ষেত্রগুলিতে আমার প্রচুর পরিমাণে কাজ চলছে। সুতরাং উদাহরণস্বরূপ দেখতে এমন একটি পদ্ধতি গ্রহণ করুন:
def summary(self, startTime=None, endTime=None):
# ... logic to assign a proper start and end time
# if none was provided, probably using datetime.now()
objects = self.related_model_set.manager_method.filter(...)
return sum(object.key_method(startTime, endTime) for object in objects)
এইরকম কিছু পরীক্ষা করার জন্য কীভাবে কেউ যোগাযোগ করতে পারে?
এখানে আমি যেখানেই রয়েছি। আমার কাছে এটি ঘটে যে ইউনিট পরীক্ষার উদ্দেশ্যটিকে তার তর্কগুলিতে কিছু বিদ্রূপমূলক আচরণ দেওয়া উচিত , সঠিক ফলাফল তৈরি করতে সঠিকভাবে ফিল্টারিং / একত্রিত করা হচ্ছে?by key_methodsummary
বিদ্রূপের ডেটটাইম.নো () যথেষ্ট সোজা, তবে কীভাবে আমি বাকী আচরণগুলি উপহাস করব?
- আমি ফিক্সচারগুলি ব্যবহার করতে পারি, তবে আমি আমার ডেটা তৈরির জন্য ফিক্সচারগুলি ব্যবহার করার পক্ষে মতামত শুনেছি (দরিদ্র রক্ষণাবেক্ষণ আমার পক্ষে ঘরে আঘাত হ্রাসকারী কন)।
- আমি ওআরএম এর মাধ্যমে আমার ডেটাও সেটআপ করতে পারতাম তবে এটি সীমাবদ্ধ হতে পারে কারণ এরপরে আমাকে সম্পর্কিত বিষয়গুলিও তৈরি করতে হবে। এবং ORM আপনাকে
auto_now_addম্যানুয়ালি ক্ষেত্রগুলির সাথে ঝামেলা করতে দেয় না । - ওআরএমকে উপহাস করা অন্য একটি বিকল্প, তবে কেবল গভীরভাবে বাসাযুক্ত ওআরএম পদ্ধতিগুলিকে ঠাট্টা করা জটিল নয়, তবে ওআরএম কোডের যুক্তিটি পরীক্ষা থেকে বিদ্রূপিত হয়ে যায় এবং মশকরা পরীক্ষাটিকে সত্যই অভ্যন্তরীণ এবং নির্ভরতার উপর নির্ভর করে বলে মনে হয় ফাংশন-কম পরীক্ষা।
ক্র্যাক করার জন্য সবচেয়ে শক্ত বাদামগুলি এই জাতীয় ফাংশন হিসাবে মনে হয়, যা মডেলগুলির কয়েকটি স্তর এবং নিম্ন স্তরের ফাংশনগুলির উপর বসে এবং সময়টির উপর খুব নির্ভরশীল, যদিও এই ফাংশনগুলি অতি জটিল নাও হতে পারে। আমার সামগ্রিক সমস্যাটি হ'ল আমি যতই এটিকে টুকরো টুকরো টুকরো টুকরো মনে করি না কেন, আমার পরীক্ষাগুলি তারা যে ফাংশনগুলি পরীক্ষা করে দেখছে তার চেয়ে আরও জটিল দেখায়।