2017-05-06 22 views
0

初めてdjangoユニットテストを使用しています。以下は私のコードのサイズダウンバージョンです。djangoでsetUp関数を複数回呼び出すTestCase

私の仮定は、各TestCaseクラスに対してsetUp関数が1回呼び出されるということでした。しかし、私がpython manage.py testコマンドを実行すると、setUp関数は各テスト関数に対して一度呼び出されます。

私は何か間違っているのですか、私の前提に間違いがありますか?

class SampleTest(TestCase): 
    """ 
     This class assumes an archiver setup with 
      add available at localhost:9101 
      query available at localhost:9105 
    """ 

    def __init__(self, *args, **kwargs): 
     self.init_var = False 
     super(SampleTest, self).__init__(*args, **kwargs) 

    def setUp(self): 
     """""" 
     print "setup called" 
     self.init_var = True 


    def test_1(self): 
     print "Test 1", self.init_var 

    def test_2(self): 
     print "Test 2", self.init_var 

答えて

0

はい、間違っています。テストケース内の各テストは独立している必要があります。したがって、それぞれに対してsetUp(およびtearDown)が1回呼び出されます。

クラス全体で1回だけ行う必要がある場合は、setUpClassを使用してください。ただし、そこにデータを設定するようなことはしないでください。

+0

データベースにいくつかの追加/削除を行うコードの複数の論理ポイントをテストする必要がある場合の対処方法を教えてください。私はセットアップ機能でデータを設定するだけではありません。私がテストしなければならないロジックは、データベースへの変更を行い、さまざまな目的のオブジェクトがデータベースに作成されているかどうかをテストする必要があります。 –

+0

申し訳ありませんが、私はあなたの質問を理解していません。どのようにそれはあなたが各テストのためにそれをしないようにしますか? –

関連する問題