Nasıl Django farklı ayarlarla test Ünitesi için?
Birim testi için Django ayarları geçersiz kılmak için basit bir mekanizma var mı? En son nesnelerin belirli bir sayı döndüren modellerimi bir Müdürü var. Döner nesnelerin sayısı NUM_LATEST ayarı ile tanımlanır.
Eğer birisi bu ayarı değiştirmek isterseniz, testler başarısız yapma potansiyeline sahiptir. Nasıl setUp()
ayarları geçersiz kılar ve sonradan tearDown()
onları geri alabilir miyim? Eğer bu mümkün değil ise bile, bir şekilde ben maymun yama yöntemi veya ayarları alay var?
DÜZENLEME:Burada Müdür benim kod:
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]
Yönetici queryset dilim settings.NEWS_LATEST_MAX
kullanır. getattr()
sadece ayarı bulunmamalıdır varsayılan sağlamak için kullanılır.
CEVAP
1.4, Django beri testler sırasında ayarları geçersiz kılmak için yollar: https://docs.djangoproject.com/en/1.6/topics/testing/tools/#overriding-settings
Deneme durumu kendi kendine olacak.ayarları içerik yöneticisi ve aynı zamanda bir test yöntemi ya da tüm test çalışmasına bir alt sınıf ya da uygulanabilecek @override_settings dekoratör olacak.
Bu özellikler henüz Django 1.3 yok.
Nasıl django'bellek sadece test v...
Nasıl set-up statik dosyalar ve medya ...
Nasıl AngularJS bir filtre ünitesi tes...
Nasıl özel yöntemleri, alanları veya i...
Nasıl terminalden Curl ile JSON veri g...