dror
dror

Reputation: 3946

Python: how to write unit test for instance variable representing a function?

The following Foo class has a dependency on an external function bar_function:

class Foo(object):

    def __init__(self, bar_function):
        self.bar_function=bar_function

    def call_bar_function(self):
        self.bar_function()

I would like to test "call_bar_function" that it actually called bar_function.

How can I write a unit test for it using Mock?

Upvotes: 0

Views: 39

Answers (1)

rdas
rdas

Reputation: 21285

since you're already injecting bar as a dependency into Foo it's simple:

from foo_module import Foo
import unittest
from unittest.mock import MagicMock

class FooTest(unittest.TestCase):

    def test_call_bar(self):
        mock_bar = MagicMock()
        foo = Foo(mock_bar)
        foo.call_bar_function()

        self.assertTrue(mock_bar.called_once())

Upvotes: 1

Related Questions