我试图在pytest测试中模拟一个函数,而模拟似乎根本不起作用。
这是我的考试
@pytest.mark.django_db
@patch('apps.titles.logic.get_similar_titles')
def test_get_recommended_titles_for_results(self, mock_get_similar_titles,
set_up):
mock_get_similar_titles.return_value = OrderedDict([
('uuid-1', 165),
('uuid-2', 163),
('uuid-6', 135),
])
match_signals = []
results = get_similar_titles(
match_signals=match_signals,
title=set_up['title']
)
assert results.items() == mock_get_similar_titles.return_value.items()
使用@pytest装饰器时是否存在一些兼容性问题,或者我犯了错误?
感谢
答案 0 :(得分:0)
在这里工作,但不应该在最后一行读到:
assert results.items() == mock_get_similar_titles().items()
修改:文档seem to suggest so。
答案 1 :(得分:0)
你正在嘲笑你正在测试的功能。您希望模拟您正在测试的代码调用/使用的函数或对象,而不是您正在测试的代码。