我想检查是否调用了本地函数(在测试本身中声明)。
例如:
def test_handle_action():
action = "test"
user = "uid"
room = "room"
content = "test"
data = {}
def test_this(user, room, content, data):
pass
handlers = {action: test_this}
with mock.patch("handlers.handlers", handlers):
with mock.patch(".test_this") as f:
handle_action(action, user, room, content, data)
f.assert_called_with()
如何在我的测试中模拟函数 test_this
的路径?
使用 .test_this
时出现错误:
E ValueError: Empty module name
答案 0 :(得分:1)
如果 test_this
是模拟函数,您可以将 test_this
定义为 Mock 对象并在其上定义断言:
from unittest import mock
def test_handle_action():
# GIVEN
action = "test"
user = "uid"
room = "room"
content = "test"
data = {}
test_this = mock.Mock()
handlers = {action: test_this}
with mock.patch("handlers.handlers", handlers):
# WHEN
handle_action(action, user, room, content, data)
# THEN
test_this.assert_called_with(user, room, content, data)