具有随机变量和不可预测输入的函数的Python Unittest测试
功能理念: 随机+随机=输出(正确或错误) 功能:具有随机变量和不可预测输入的函数的Python Unittest测试,python,function,unit-testing,random,Python,Function,Unit Testing,Random,功能理念: 随机+随机=输出(正确或错误) 功能: def input_gener(): """Generates questions and prints and returns status result of user input as a string""" a = random.randrange(1,10) b = random.randrange(1,10) c = input("What is the sum of {0} and {1}?
def input_gener():
"""Generates questions and prints and
returns status result of user input as a string"""
a = random.randrange(1,10)
b = random.randrange(1,10)
c = input("What is the sum of {0} and {1}? ".format(a,b))
if c == a+b:
print("{0} is right!.".format(c))
status = "was right"
else:
print("{0} is wrong!.".format(c))
status = "was wrong"
return status
我可以创建如下测试:
def test_res_right(self):
#Test right value
right_status ="was right"
self.assertEqual(right_status,input_gener())
def test_res_wrong(self):
wrong_status = "was wrong"
self.assertEqual(wrong_status,input_gener())
结果取决于我将如何输入数据。除非我可以从变量“a”和“b”中检索值,并以更自动化的方式修改每个测试的正确性或错误性。
在随机值未知且输入不可预测的情况下,测试此类类型函数的更好方法是什么 与直接在函数中调用
random.randrange
不同,您应该定义一个单独的本地函数,然后在测试中模拟该函数以返回一些预期值。您可以使用或模拟random.randrange
为单元测试返回可重复的结果