我对测试使用“随机”模块的某些代码感兴趣,并且我希望能够在运行测试时修补/插入我自己的伪随机版本,该函数会返回一个已知值并将其放回原处。之后返回到正常的随机模块。从文档中,我只能看到可以修补类。有没有办法修补功能?像这样的东西:

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

该代码不起作用,我需要什么呢?

最佳答案

patch.function似乎不存在。您可以改为使用 patch 本身:

with patch('random.choice', return_value=3) as mock_random:
    choice = my_code_that_uses_random()
    assert choice == 3

关于python - 我可以使用unittest.mock.patch修补 'random'吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18463173/

10-12 20:20