2017-09-19 2 views
0

내가 가진 : 나는 기능이 작동하는지 테스트 할 수 있도록테스트 장고 - 내 tests.py에 저장 테스트 DB

from functions import function 
from .models import Student 

def setUp(self): 
    self.student = Student.objects.create(status=False) 

def test_function(): 
    function() # function changes student's status to True 
    print(self.student.status) # I'm still getting False 

테스트를 실행하는 동안, 내 기능 테스트를 위해 만든 개체의 속성을 변경하지 않습니다 정확히. 아래 시나리오와 같이 sth을 만드는 방법이 있습니까?

  • 테스트 개체가 생성되었습니다.
  • 개체의 속성을 변경하는 함수를 호출하고 있습니다.
  • attributte가 변경되었는지 확인할 수 있습니다.

기능 테스트하고 싶은 것은 아무것도 반환하지 않으며, 객체의 attriubtes 만 변경합니다.

답변

2

여러분의 TestCase 클래스 인 클래스에 setUp을 넣자. 유 얻을 필요가 귀하의 self.students 변수에 반영되지

from django.test import TestCase 

class TestXXX(TestCase): 

    def setUp(self): 
     self.student = Student.objects.create(status=False) 

    def test_function(): 
     function() # function changes student's status to True 
     print(self.student.status) # I'm still getting False 

기능 당신이 당신의 DB에 약간 수정을가 실행되지만 새로운 데이터 :이 setup하고 test_function을 넣어 내부의 예를 TestXXX에 대한 클래스를 만들 수 있습니다 수행 사용하여 새 데이터 :

self.student.status.refresh_from_db() 
print(self.student.status) 

Model.refresh_from_db