我是 Django 测试的新手,我想知道如何为信号编写测试。
我查看了文档,但我找不到任何有用的信息。
我们假设pre_save
模型有一个简单的Reservation
信号,我想在将其保存到数据库之前更改某些属性。
我的代码如下所示:
@receiver(pre_save, sender=Reservation)
def set_destination_type(sender, instance, *args, **kwargs):
points = ['New York', 'Rome', 'Paris']
if instance.destination in points:
instance.international = True
instance.international = False
我该如何处理?我只是创建一个预订并声明设置了正确的值吗?我是否单独测试此功能?我真的不知道如何开始。
谢谢!
答案 0 :(得分:2)
最简单的确是创建一些预订(有些人有点目的地,有些没有),将目的地设置为“foo”。 (例如)然后保存它们。
国际似乎是一个布尔字段,所以使用' foo' (这不是布尔值)和保存将允许您检查两种情况(并且只要实例未经验证/保存,您可以分配您想要的任何值)
"我是否单独测试此功能" =>我不会这样做,信号框架与Django模型紧密耦合,为了获得隔离,你必须模拟很多库,使你的测试代码比测试代码本身困难得多