用@patch 定义的常见模拟到 Python 中的几个测试用例函数

问题描述 投票:0回答:0

我在使用模拟(简化)的 Python 中有这个测试代码:

from unittest import TestCase
from mock import patch

class TestClass(TestCase):

    @patch("mymodule.function1")
    @patch("mymodule.function2")
    @patch("mymodule.function3")
    def test_case_1(self, function3_mock, function2_mock, function1_mock):
       # code for test_case_1
       ...

    @patch("mymodule.function1")
    @patch("mymodule.function2")
    @patch("mymodule.function3")
    def test_case_2(self, function3_mock, function2_mock, function1_mock):
       # code for test_case_2
       ...

    @patch("mymodule.function1")
    @patch("mymodule.function2")
    @patch("mymodule.function3")
    def test_case_3(self, function3_mock, function2_mock, function1_mock):
       # code for test_case_3
       ...

    ...

我想知道是否有一些方法可以简化这个,所以:

  • 我不会一直重复每个测试用例函数中的三个
    @patch(...)
    语句
  • 我不需要将模拟函数传递给测试用例函数,所以我可以只调用 write
    def test_case_1(self)
    例如

这可能吗?你能提供一些提示/建议吗?

提前致谢!

python python-unittest python-mock
© www.soinside.com 2019 - 2024. All rights reserved.