2017-05-06 2 views
0

처음으로 django 유닛 테스트를 사용하고 있습니다. 다음은 내 코드의 크기 다운 버전입니다.django에서 setUp 함수가 여러 번 호출 됨 TestCase

내 가정은 각 TestCase 클래스마다 setUp 함수가 한 번 호출된다는 것입니다. 하지만 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)은 각각에 대해 한 번 호출됩니다.

전체 수업에 대해 한 번만 수행해야하는 것이 있다면 setUpClass을 사용하십시오. 그러나 데이터 설정과 같은 일을하면 안됩니다.

+0

데이터베이스에 추가/삭제를 수행하는 코드의 여러 논리 점을 테스트해야하는 사용 사례를 어떻게 해결해야합니까? 나는 셋업 기능에서 데이터를 셋업하는 것이 아니다. 필자가 테스트해야하는 논리는 데이터베이스에 대한 변경을 수행하며 다양한 의도 된 개체가 데이터베이스에 만들어 졌는지 테스트해야합니다. –

+0

죄송합니다. 질문을 이해할 수 없습니다. 어떻게하면 각 테스트마다 그것을하는 것을 막을 수 있습니까? –