2024-04-25 05:47:57 发布
网友
目前正在处理一些遗留的python代码。我需要测试其中一个函数function foo。现在要做到这一点,我需要模拟另一个由foo调用的函数所给出的返回值,即function bar
function foo
foo
function bar
然而,这两个都在我的测试包之外,当我试图模仿bar时,foo不受影响。有没有一种方法可以做到这一点而不把所有的东西都放到一个类中(这是首选,但它是遗留代码)
bar
一个简单的例子:
foo\ u and\ u bar\包/foo\ u and\ u bar\模块.py
def bar(): return 5 def foo(): return 2 * bar()
测试\u foo\u和\u bar\u module.py
from unittest import TestCase from unittest.mock import patch from foo_and_bar_package.foo_and_bar_module import foo class TestFoo(TestCase): @patch('foo_and_bar_package.foo_and_bar_module.bar') def test_foo(self, mock_bar): mock_bar.return_value = 2 self.assertEqual(foo.foo(), 2 * mock_bar.return_value)
一个简单的例子:
foo\ u and\ u bar\包/foo\ u and\ u bar\模块.py
测试\u foo\u和\u bar\u module.py
相关问题 更多 >
编程相关推荐