[英]Python unit test with mocking assert_called for function outside class
我正在嘗試測試在 class 之外定義的 function 是否由 class 方法調用。
def function_a(input):
return input
class MyClass:
def __init__(self, user_function=function_a):
self.user_function = user_function
def function_b(input):
return self.user_function(input)
我正在嘗試像這樣測試 function 調用:
from unittest import TestCase
from unittest.mock import Mock
class TestMyClass(TestCase):
def test_function_call(self):
my_class = MyClass(user_function=function_a)
mock = Mock()
my_class.function_b(input)
mock.function_a.assert_called()
這給了我
AssertionError: Expected 'function_a' to have been called.
我正在使用 Python 3.6。 查看 output 我可以看到 function_a 被調用。 我究竟做錯了什么?
這在這里成功了:
from unittest import TestCase
from unittest.mock import MagicMock
class TestMyClass(TestCase):
def test_function_call(self):
my_class = MyClass(user_function=MagicMock())
my_class.function_b(input)
my_class.user_function.assert_called()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.