2011-02-03 14 views
26

python 2.7 en kısa setUpClass() yönteminin bazı temel örneklerini arıyorum. Benim modülünde bazı sınıf yöntemlerini test etmek çalışıyorum ve ben kadarıyla ele verdik:En doğru olmayan setUpClass yöntemini() nasıl kullanırım?

import unittest 
import sys 

import mymodule 

class BookTests(unittest.TestCase): 
    @classmethod 
    def setUpClass(cls): 
     cls._mine = mymodule.myclass('test_file.txt', 'baz') 

Ama nasıl yeni oluşturulan nesneyi kullanan testleri yazmak için buradan devam etmek hiçbir fikrim yok.

cevap

26

Test yöntemlerinde artık global sınıf atkısı _mine'a kendiliğinden erişebilirsiniz. Yani böyle bir şey yapabilirsiniz: Eğer Django 1.8+ kullanıyorsanız, bunun yerine setUpTestData yöntemi kullanmalısınız

def test_something(self): 
    self.assertEqual(self._mine.attribute, 'myAttribute') 
+0

Bu, doğrudan nesneyi oluşturmaktan nasıl farklı olabilirdi. ie: def setUp (self): cls_mine = baz(). – Pradyot

+0

@Pradyot Mine sınıfta ve senin örneğinde olacak. Şahsen muhtemelen setUp yönteminde kurardım, ama bu sadece bir tercih meselesi. – sdolan

+12

@Pradyot 'setUp()' her test yönteminden önce çağrılırken, 'setUpClass()' tüm testlerden önce bir kez çağrılır. Testlerinizin birçoğundan yararlanabileceği pahalı operasyonlar, setUpClass() 'a gitmelidir. – Dennis

5

.

cls nesnesindeki tüm öznitelikleri ayarlayabilir ve bunlara self nesnesindeki bireysel test yöntemleri aracılığıyla erişebilirsiniz.

Daha fazla bilgi için the Django docs numaralı telefonu kullanabilirsiniz.

İlgili konular