运行 Django tests.py 关于更新对象的方法

Running Django tests.py on method that updates object

我正在使用 Django 尝试 运行 测试,但出了点问题。这是一个最小的例子:

models.py:

class Warrior(models.Model):
    is_alive = models.BooleanField("Is Alive?", default=True)
    def kill(self):
        self.alive = False
        self.save()

tests.py:

from django.test import TestCase
from .models import Warrior

class WarriorModelTests(TestCase):
    def test_kill(self):
        """kill() makes .alive False."""
        warrior = Warrior.objects.create()
        warrior.kill()
        self.assertIs(warrior.is_alive, False)

对此有何建议?我开始认为这个小战士是不朽的。一如既往的感谢!

由于您的 kill() 函数将 alive 设置为 False,那么您应该声明 alive 的值而不是 is_alive,不是吗?

您可以打印出这些值来进行调试。