有没有一种方法可以一次性设置模拟财产的类补丁?假设我要测试以下课程。
class ExampleClass
def __init__(self):
self.sub_component = SubComponent(...)
def example_function_double_value(self) -> float:
return self.sub_component.value * 2
它有下面的单元测试,我修补了SubComponent并将SubComponent.value设置为返回3。
import unittest
from unittest import mock
def set_patch(patch):
patch.value = 3
@mock.patch('SubComponent_Path.SubComponent')
class ExampleUnitTest(unittest.TestCase)
def setUp(self):
self.example_class = ExampleClass()
def test_case1(self, patch):
set_patch(patch)
self.assertEqual(self.example_class.example_function_double_value, 6)
def test_case2(self, patch):
set_patch(patch)
# Some other test case where I expect `subcomponent.value to be 3`
是否有一种更优雅的方法来做到这一点,而不需要在每次测试开始时调用该助手函数?