好吧,我正在尝试为具有 while 循环的 python 函数编写 pytest,该循环仅在满足特定条件时退出,或者将继续检查该条件 x 时间量。
现在我正在尝试为它编写一个 pytest 并跳出循环我能够明显地模拟循环正在寻找的条件但是在编写 pytest 以测试它是否超时有效并显示正确的错误是我无法直想。 这是演示代码
flag = False
while time.time() < end_time:
if condition:
do_something()
flag = True
break
return flag
我已经尝试了几件事,但没有任何结果。
如果我没理解错的话,你想要的是:
a) 你的代码必须进入while循环
b) 你的代码不能因为
break
语句而退出循环。
我假设在设置代码中,您在调用
end_time
后通过执行一些操作获得了 time.time()
。我还假设您不想等待超时的实际持续时间。
您可以通过以下方式处理:
time
模块的模拟,使 .time()
有 3 个返回值:
end_time
end_time
end_time
condition
的东西)以便它第一次进入循环时,if
语句计算为 False
.我建议考虑您是否真的需要该测试-使用演示代码,您的测试不会通过使用此设置为您提供任何信息,而您只是通过使循环从不首先执行而无法获得这些信息除非你在那之后有额外的代码
if
块