gpt4 book ai didi

在循环中使用模拟库进行用户输入的 Python 测试

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:52 24 4
gpt4 key购买 nike

我正在尝试使用模拟库来测试一段代码。在此代码中,用户原始输入在 for 循环中被接受,如下所示。我已经编写了测试用例 test_apple_record,它可以为托盘编号提供单个用户输入值。

但是,对于 for 循环中的每次迭代,它只采用与预期相同的值 (5)。

问题是:如何为每次迭代提供不同的值?例如,对于 i=0、1 和 2,托盘编号的具体值分别为 5、6 和 7。

class SomeClass(unittest.TestCase):    
def apple_counter(self):
apple_record = {}
for i in range(3):
apple_tray = input("enter tray number:")
apple_record[apple_tray] = (i+1)*10
print("i=%d, apple_record=%s"%(i, apple_record))

def test_apple_record(self):
with mock.patch('builtins.input', return_value='5'):
self.apple_counter()

最佳答案

您可以将 side_effect 参数与可迭代对象一起使用以提供返回值:

with mock.patch('builtins.input', side_effect=[5, 6, 7]):
self.apple_counter()

参见 docs :

If side_effect is an iterable then each call to the mock will return the next value from the iterable.

关于在循环中使用模拟库进行用户输入的 Python 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32681551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com