如何在Unitest中轻松找到补丁目标?
我在django应用中具有以下模块结构:
subscriptions
- api
- views.py
- serializers.py
- tests
test_some_view.py
- models.py
- signals.py
in models.py
我有一个google> google> google playorder
模型,in signal.py.py
我有一个信号:
@receiver(post_save, sender=GooglePlayOrder)
def save_google_play_order(sender, instance, created, **kwargs):
pass
Google Playorder
是在serializer google playorderSerializer
中创建的实例,来自api/serializers.py
,该 由某些google> google> google> google> google> google playplayorderview <<<< /代码>在
api/views.py
中。
现在,我想从api/tests/test_some_view.py
中运行测试,其中我想模拟save_google_play_play_order
signal。
不幸的是,此实现不起作用,因为我(afaik)应该遵循修补某些内容的导入:
@patch('subscriptions.signals.save_google_play_order')
def test_normal(self, mock):
因此,在这种情况下,我应该如何理解我应该用作patch>补丁
decorator的目标?
I have the following module structure within a Django app:
subscriptions
- api
- views.py
- serializers.py
- tests
test_some_view.py
- models.py
- signals.py
In models.py
I have a GooglePlayOrder
model, and in signals.py
I have a signal:
@receiver(post_save, sender=GooglePlayOrder)
def save_google_play_order(sender, instance, created, **kwargs):
pass
The GooglePlayOrder
instance is being created in a serializer GooglePlayOrderSerializer
from api/serializers.py
, which is called by some GooglePlayOrderView
in api/views.py
.
And now I want to run a test from api/tests/test_some_view.py
, where I want to mock the save_google_play_order
signal.
Unfortunately, this implementation does not work, as I (AFAIK) should follow the imports for patching something:
@patch('subscriptions.signals.save_google_play_order')
def test_normal(self, mock):
So, how should I understand in this case what exactly I should use as a target of patch
decorator?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试使用模拟功能的位置。例如,如果您使用
save_google_play_order
在serializers.py
中:@patch('sisscriptions.apicriptions.api.serializers.save_google_play_play_pord_order')
Try where the mocked function is used. For example, if you use
save_google_play_order
inserializers.py
:@patch('subscriptions.api.serializers.save_google_play_order')