相关疑难解决方法(0)

Django 中的模拟测试在 TestCase 中运行时不起作用,但一一运行良好

在 Django 中测试视图时,我使用 python mock 来修补一些函数和类。

如果我独立运行每个测试,则所有测试都有效。但是当我运行 TestCase 时,有些测试不起作用(补丁没有效果)。

class ViewsTest(TestCase):
    @mock.patch('extras.utils.get_user_category')
    def test_select_test(self, mock_method):        
        mock_method.return_value = Category(id=1, name="Foo")

        response = self.client.post(reverse('select_test', args=['Foo']))

        self.assertEqual(200, self.client.post(reverse('select')).status_code)

    @mock.patch('user_profile.models.Profile.categories')
    def test_category_view(self, mock_related):      
        mock_related.all.return_value = []

        self.assertEqual(200, self.client.post(reverse('category')).status_code)
Run Code Online (Sandbox Code Playgroud)

我有一个打印视图来查看每个模拟方法,当它工作时它会打印:

MagicMock 名称='get_user_category' id='162815756'

当不起作用时,我看到:

函数 get_user_category 在 0x8e0fb8c

我尝试了修补程序 start() 和 stop() 但我仍然有问题。

问题是什么?

python django patch mocking

6
推荐指数
1
解决办法
1442
查看次数

标签 统计

django ×1

mocking ×1

patch ×1

python ×1