小编djd*_*s23的帖子

使用 Mock 测试 Django 命令

我有一个要测试的命令。它击中了外部服务,我想模拟出击中这些外部服务的函数调用,只检查它们是否使用正确的参数被调用。代码如下所示:

import mock
from django.core.management import call_command
from myapp.models import User

class TestCommands(TestCase):

    def test_mytest(self):
        import package

        users = User.objects.filter(can_user_service=True)

        with mock.patch.object(package, 'module'):
            call_command('djangocommand', my_option=True)
            package.module.assert_called_once_with(users)
Run Code Online (Sandbox Code Playgroud)

但是,当我运行它时,我一直AssertionError: Expected to be called once. Called 0 times.认为这是因为我实际上并没有在上下文中调用该模块call_command('djangocommand', my_option=True),而是在. 如果没有,是否有人对如何进行此类测试有任何建议?

python django unit-testing mocking

5
推荐指数
1
解决办法
2166
查看次数

标签 统计

django ×1

mocking ×1

python ×1

unit-testing ×1