누군가 제게 Postgres DB 오류, 특히 IntegrityError를 올바르게 테스트하는 방법을 설명해 주실 수 있습니까? 즉 좋아, 작품을 POSTGRES 방법이기 때문에, 여기에django Postgres IntegrityError
class TestSlugs(TestCase):
# This slug must be unique
b = BookPublisher(slug=self.duplicate_slug)
self.assertRaises(IntegrityError, b.save)
#check if there's only one BookPublisher
self.assertEquals(BookPublisher.objects.count(), 1)
는 IntegrityError가 잡는다하지만 모든 작업이 실패합니다 : 예를 들어 나는 다음 테스트가 있습니다. 문서에서 transaction.rollback()을 사용할 수 있지만 where : 테스트 또는 save() 메소드에서?
또한 수동으로 롤백을 쓰는 아이디어가 마음에 들지 않습니다. 왜 장고를 저장하려고하면 안되며, 실패 할 경우 IntegrityError를 제공하고 계속 작업하게하십시오.
나는 장고이 유효 있는지 1.1
감사합니다. 따라서 라이브 코드에서 IntegrityError를 잡아도 모든 것이 잘 될 것입니까? 아니면 명시 적으로 롤백해야합니까? –
코드에서 IntegrityError가 발생하지 않도록하고 모든 SQL 오류를 버그로 간주해야합니다. 그러므로 수정을 시도하기 전에 확인해야합니다. 수정할 수없는 경우 롤백하여 문제를 사용자에게보고 할 수 있습니다. 또는 수정 사항을 건너 뛰거나 대신 다른 수정을 할 수 있습니다. –