有没有一种方法可以一次性设置模拟财产的类补丁?假设我要测试以下课程。
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`
是否有一种更优雅的方法来做到这一点,而不需要在每次测试开始时调用该助手函数?