在测试用例中,无法捕获Django的pre_save信号
在Django中,我的代码可以正常捕捉到pre_save信号。但是,在tests.py中的测试用例里,信号处理器却收不到任何信息。这可能是什么原因呢?
- 看起来我的测试用例和信号处理器是在不同的应用里。这会是问题的原因吗?
1 个回答
5
看起来我的测试用例和信号处理程序在不同的应用里。这会是问题的原因吗?
是的。每个应用的 tests.py
文件都是独立的。你需要在测试中引入你的信号注册代码,或者手动在某个地方连接它们,以确保它们能够接收到信号:
你可以把信号处理和注册代码放在任何你想要的地方。不过,你需要确保这个模块在早期就被引入,这样信号处理才能在需要发送信号之前就注册好。
(来源:监听信号,连接接收函数.)