【发布时间】:2014-04-22 20:03:20
【问题描述】:
我写过这样的代码:
def choice(states):
states = list(states)
rnd = random.random()
for state, p in states:
rnd -= p
if rnd <= 0:
return state
我需要创建一些测试:
import unittest
class Tests(unittest.TestCase):
def test_choice(self):
assertEquals(choice(states),something_equl)
我应该如何将自己的随机数注入测试?得到确定性的结果?
【问题讨论】:
-
你到底想做什么?
-
您可以传入
rnd,但默认为None。然后在你的函数中只生成rnd,如果它是None。 -
当你调用你的函数时,你可以做这样的事情 random.randrange(0000,9999)
-
您是否考虑过使用例如
random.seed(0)重置为已知状态? -
问题的描述应该清楚地表明它是关于不是获取随机数据,而是为了获得确定性的东西......事实上,它具有误导性(我发现它正在寻找一种简单的方法来获取测试的随机数据
标签: python unit-testing testing random mocking