簡體   English   中英

Python 單元測試與 mocking 為 function 外部的 function 進行了斷言調用

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM