【发布时间】:2021-09-07 12:03:48
【问题描述】:
我有这些文件:
utils.py
def generateCode():
while(True):
# https://tools.ietf.org/html/rfc4122.html
uuid_code = str(uuid.uuid4().int)[:6]
return uuid_code
生成.py
from utils import generateCode
def create_auth_challenge():
code = generateCode()
return code
test.py
from unittest.mock import patch
from generate import create_auth_challenge
@patch('utils.generateCode', return_value='123456')
def test_create_auth_challenge(self, mock_generateCode):
answer = create_auth_challenge()
self.assertEqual(answer,'123456')
但问题是因为测试结果失败
answer!='123456'
所以,我认为这是因为模拟过程是错误的,因为答案值始终是随机数。是什么让它错了?是因为uuid4吗?如何进行正确的 mocking?
【问题讨论】:
标签: python unit-testing mocking