【发布时间】:2012-06-11 16:52:38
【问题描述】:
在一些应用程序域(例如 GameDev)中,许多函数应该使用随机值创建以产生它们的输出。以下是其中一个示例:
def generate_key(monster_key_drop_coef):
key_letters = string.ascii_uppercase
rand = random.random()
if monster_key_drop_coef < rand:
return None
button = {}
button["type"] = random.choice([1,2,3])
button["letter"] = random.choice(key_letters)
return button
这个函数根据几个随机操作生成物品的掉落。如果您想自动验证此功能的正确性,则会出现问题。生成的值不是确定性的,编写回归测试似乎是不可能的。
我的问题是:
- 是否可以为这种类型的代码编写有用的回归测试? 职能?
- 在这种情况下,是否有任何通用方法可以创建其他类型的测试?
【问题讨论】:
-
关于这个主题的书籍有很多。示例:johndcook.com/Beautiful_Testing_ch10.pdf
-
模拟 RNG 以提供已知结果(然后使用已知期望结果的特定输出进行测试)是一种方法。
标签: python testing random regression-testing