다른 질문을봤을 때 Python의 단위 테스트를하는 데 어려움을 겪고 있습니다. 노력 2 일 및 나는 진전을 보이지 않았다.Python Unit Test Mocking
클래스의 일부인 내 메서드에는 DAL에 대한 호출이 몇 가지 있습니다.
car_registration = self.dal.cars.get_by_registration('121D121')
이 DAL은 기본 클래스에서 구성됩니다. 단위 테스트를 실행할 때이 호출을 완전히 무시/모의하고 대신 미리 정의 된 응답을 반환하여 메서드를 계속 진행하고 모든 것이 예상대로 작동하는지 확인합니다.
방법으로의 시작 : 순간
def change_registration(self):
body = json.loads(self.request.body)
registration = body['registration']
car = self.dal.cars.get_by_registration(registration)
내 파이썬 테스트 파일은 다음과 같습니다 나는 그러나 응답 (3)을 얻을 것으로 기대하고있다
class CarTestCase(unittest.TestCase):
def setUp(self):
self.car_controller = CarController()
def test_change_registrations(self):
self.car_controller.dal.cars.get_by_registration = MagicMock(return_value=3)
response = self.car_controller.change_registration()
오류가 발생되고있다.
조롱이 작동하지 않고 유닛 테스트를 사용할 때 완전히 설정되지 않은 주 DAL을 계속 사용하려고합니다. 실제 DAL을 찾지 않고 대신 mock을 찾는 것을 어떻게 막을 수 있습니까?
난 당신이'dal' 속성을 조롱 할 필요가 가정 그 자체. 'self.car_controller.dal = Mock()'과 같은 것. 그렇다면'self.car_controller.dal.cars.get_by_registration.return_value = 3'. – chepner
그 라인을 변경하면 'AttributeError : 속성을 설정할 수 없습니다'라는 메시지가 나타납니다. – user7692855