我有兴趣测试一些使用'随机'模块的代码,并且我希望能够在我的测试运行时修补/插入我自己的伪随机版本,它会返回一个已知值,并且然后把它放回正常的随机模块。从文档中我只能看到我可以修补类。有没有办法修补功能?像这样:
def my_code_that_uses_random():
return random.choice([0, 1, 2, 3])
with patch.function(random.choice, return_value=3) as mock_random:
choice = my_code_that_uses_random()
assert choice == 3
该代码不起作用,我需要什么呢?
答案 0 :(得分:5)
patch.function
似乎不存在。您可以改为使用patch
:
with patch('random.choice', return_value=3) as mock_random:
choice = my_code_that_uses_random()
assert choice == 3