如何编写单元测试来测试删除模型中的记录

How to write unit test to test deleting a record in a model

我有一个模型,我想编写一个单元测试来测试模型上的删除操作,我已经为创建、读取和更新编写了代码,但我看不懂删除应该如何工作。 这是我的代码。

def create_pay(self):

    pay = Pay.objects.create(user=self.user, amount=2000, appointment_count=2)
    return payout

这是我调用 create_pay 方法来测试删除操作的方法

def test_payout_model_delete(self):
        payout = self.create_payout()
        get_payout = Payout.objects.get(pk=payout.pk)
        del_pay = get_payout.delete()
        self.assertEqual(del_pay, (None))

但是它给了我这个错误 断言错误: (1, {'doctors.Payout': 1}) != None

重新查询记录并使用 exists() 验证它不再存在。

def test_payout_model_delete(self):
   payout = self.create_payout()
   pk = payout.pk
   get_payout = Payout.objects.get(pk=payout.pk)
   del_pay = get_payout.delete()
   self.assertFalse(Payout.objects.filter(pk=pk).exists())

您可以使用计数而不是删除方法return类型,

def test_payout_model_delete(self):
        payout = self.create_payout()
        payouts_len = Payout.objects.count()
        get_payout = Payout.objects.get(pk=payout.pk)
        get_payout.delete()
        self.assertEqual(Payout.objects.count(), payouts_len - 1)