我是 python 新手,一直在使用 python 3 进行学习。我正在使用 python 的单元测试框架来测试我的代码。
问题 :-
我需要进行单元测试的函数以以下方式接受输入:-
def compare():
a, b, c = input().strip().split(' ')
d, e, f = input().strip().split(' ')
# other code here
我正在使用以下测试用例来模拟输入:-
class TestCompare(unittest.TestCase):
@patch("builtins.input", lambda: "1 2 3")
@patch("builtins.input", lambda: "4 5 6")
def test_compare(self):
self.assertEqual(compare(), "1 1")
我面临的问题是,当运行测试用例时,变量三元组 a、b、c 和 d、e、f 具有相同的值 - 1,2,3
我一直在尝试找到一种方法来注入第二组输入来运行我的测试,但徒劳无功。
非常感谢有关上述内容的任何帮助。
解决方案环境:- Python 3
你不能像这样修补两次。您必须使用在后续调用中返回不同值的对象来修补它一次。这是一个例子:
fake_input = iter(['1 2 3', '4 5 6']).__next__
@patch("builtins.input", fake_input)
def test_compare(self):
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)