【发布时间】:2020-08-07 16:57:51
【问题描述】:
我是单元测试和模拟的新手。我有一个脚本get_table.py 和一个函数
def get_table_name(id):
url = "https://some_api" + id
table = requests.get(url)
return table
然后我创建了一个单元测试脚本如下:
from get_table import get_table_name
from unittest.mock import patch
class TestFetchTable(unittest.TestCase):
@patch('get_table.get_table_name')
def test_get_table_name(self,mock):
mock.return_value = 'table_1'
result = get_table_name('id1')
self.assertEquals(result, 'table_1')
if __name__== '__main__':
unittest.main()
单元测试在这里通过了,但测试仍然运行在实际的 API 上,而不是模拟的 API。我可以知道我在这里做错了吗?
【问题讨论】:
-
你好,有趣,也许导入基本模块
import get_table,不确定... -
尝试使用
import get_table并改为调用get_table.get_table_name,因为这是您已修补的内容。检查where to patch。
标签: python api unit-testing patch