Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用fixture的Django测试用例中禁用信号?_Django_Unit Testing_Signals - Fatal编程技术网

如何在使用fixture的Django测试用例中禁用信号?

如何在使用fixture的Django测试用例中禁用信号?,django,unit-testing,signals,Django,Unit Testing,Signals,当我使用fixtures创建数据时,如何禁用DjangoTestCase中所有测试的信号 不幸的是,以下改编自的方法不起作用。我假设夹具是在设置阶段之前应用的 from django.db.models import signals from django.test import TestCase class MyTestCase(TestCase): fixtures = ["some_data.json"] def setUp(self) -> None:

当我使用
fixtures
创建数据时,如何禁用Django
TestCase
中所有测试的信号

不幸的是,以下改编自的方法不起作用。我假设夹具是在
设置
阶段之前应用的

from django.db.models import signals
from django.test import TestCase


class MyTestCase(TestCase):
    fixtures = ["some_data.json"]

    def setUp(self) -> None:
        signals.post_save.disconnect(sender=MyModel, dispatch_uid="some_signal_uid")

    def test_some_test(self):
        # do something


@receiver(post_save, sender=MyModel,dispatch_uid="some_signal_uid")
def some_signal(sender, instance: MyModel, created: bool, **kwargs):
    # do something

解释为类加载一次fixture以加速测试。尝试断开连接,而不是
setUp
@Alasdair,这确实有效!