Mox를 사용하여 django 필터 쿼리를 조롱하려고합니다. 내 장고 쿼리가 체인 메서드이기 때문에 Mox 웹 사이트에서 지침을 따르고 있지만 AndReturn() 메서드가 존재하지 않는다고 불평합니다. 내 단위 테스트에서 Mox를 사용하여 Mocking Django 쿼리
def CheckNameUniqueness(device):
ex_device = device.__class__.objects.filter(name__iexact=device.name)
if not ex_device:
return None
if ex_device.count() > 0:
return ex_device
, 나는 빈리스트를 반환하는 필터 방법을 조롱하기 위해 노력하고있어 :
여기 내 방법입니다. AttributeError : 내 테스트 케이스를 실행하면
class testCheckNameUniqeness(unittest.TestCase):
""" Unit test for CheckNameUniqueness function """
def setUp(self):
self.device_mocker = mox.Mox()
def testCheckNameUniqenessNotExists(self):
device = self.device_mocker.CreateMock(models.Device)
device.name = "some name"
device.objects.filter(name__iexact=device.name).AndReturn(None)
# Put all mocks created by mox into replay mode
self.device_mocker.ReplayAll()
# Run the test
ret = CheckNameUniqueness(device)
self.device_mocker.VerifyAll()
self.assertEqual(None, ret)
, 나는 다음과 같은 오류가 '검색어 세트'개체가 어떤 속성 'AndReturn'
참고 때문에 데이터베이스 테이블의 많은 수의, 오라클이 없습니다 데이터베이스 및 기타 복잡한 문제가 발생할 경우 데이터베이스를 만들지 않고이 단위 테스트를 실행해야합니다.