我在这样的模块中有一个类:
class Foo:
def bar1(self) -> str:
return "bar1"
def bar2(self) -> str:
bar = bar1()
return bar
def bar3(self) -> str:
bar = bar1()
return bar
def bar4(self) -> str:
bar = bar1()
return bar
我在另一个模块中有一个测试类,我想为每个barX
函数模拟方法bar1
,除非我测试我的bar1
本身。实际上,我有很多barX
方法(因此也有测试),所以我不想简单地在每个barX
测试方法(test_bar1函数除外)上面放相同的补丁装饰器
我通过在类level上用@patch
装饰器修补bar1
方法解决了这个问题,但是我如何否定1测试方法的装饰器(我对bar1()
的测试)
我的测试代码:
foo = Foo()
def mock_bar1() -> str:
return "mocked_bar1"
@patch("foo_module.Foo.bar1", mock_bar1)
class FooTest(TestCase):
def test_bar1(self) -> None:
# fails because bar1() is mocked, I want to disabed the mock here
self.assertEqual("bar1", foo.bar1())
def test_bar2(self) -> None:
self.assertEqual("mocked_bar1", foo.bar2())
def test_bar3(self) -> None:
self.assertEqual("mocked_bar1", foo.bar3())
def test_bar4(self) -> None:
self.assertEqual("mocked_bar1", foo.bar4())
那么,我怎样才能忽略/否定我的测试方法test_bar1
的补丁方法呢
目前没有回答
相关问题 更多 >
编程相关推荐