我试图在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装饰器时是否存在兼容性问题,或者我是否犯了一个错误?
谢谢
发布于 2015-02-12 06:27:33
我在这里胡思乱想,但最后一行不应该是这样的:
assert results.items() == mock_get_similar_titles().items()编辑:文档seem to suggest so。
发布于 2015-02-12 06:36:35
您正在模拟您正在测试的函数。你想要模拟出你正在测试的代码调用/使用的函数或对象,而不是你正在测试的代码本身。
https://stackoverflow.com/questions/28465514
复制相似问题