มีกลไกง่ายๆในการลบล้างการตั้งค่า Django สำหรับการทดสอบหน่วยหรือไม่? ฉันมีผู้จัดการในโมเดลของฉันที่ส่งคืนอ็อบเจ็กต์ล่าสุดจำนวนหนึ่ง จำนวนออบเจ็กต์ที่ส่งคืนถูกกำหนดโดยการตั้งค่า NUM_LATEST
สิ่งนี้อาจทำให้การทดสอบของฉันล้มเหลวหากมีคนเปลี่ยนการตั้งค่า ฉันจะลบล้างการตั้งค่าsetUp()
และเรียกคืนในภายหลังได้tearDown()
อย่างไร หากเป็นไปไม่ได้มีวิธีใดบ้างที่ฉันสามารถแก้ไขวิธีการหรือล้อเลียนการตั้งค่าได้
แก้ไข:นี่คือรหัสผู้จัดการของฉัน:
class LatestManager(models.Manager):
"""
Returns a specific number of the most recent public Articles as defined by
the NEWS_LATEST_MAX setting.
"""
def get_query_set(self):
num_latest = getattr(settings, 'NEWS_NUM_LATEST', 10)
return super(LatestManager, self).get_query_set().filter(is_public=True)[:num_latest]
ผู้จัดการใช้settings.NEWS_LATEST_MAX
เพื่อแบ่งชุดแบบสอบถาม getattr()
จะถูกใช้เพียงเพื่อให้เริ่มต้นควรตั้งค่าได้อยู่