Unittest Python, когда проверять равенство значений или объектов
У меня есть следующий код, который я тестирую.
main.py
import helpers
def do_something(some_arg):
...
return helpers.help_do_something(some_arg)
test_main.py
import unittest
from unittest import mock
class TestDoSomething(unittest.Testcase):
@mock.patch('path.to.patch')
def setUp(self, *_):
import main
self.main = main
@mock.patch('main.helpers')
def test_0_1(self, helpers_mock):
ret = self.main.do_something('test_arg')
self.assertIs(ret, helpers_mock.help_do_something.return_value)
Когда я тестирую возвращаемое значениеdo_something
мой инстинкт подсказывает мне, что сравнение должно утверждать равенство объектов, а не равенство ценностей. Правильно ли я думаю об этом? Мне трудно сформулировать, почему это должно быть так.
В более общем смысле, когда мы должны тестировать равенство объектов по сравнению с равенством значений в модульном тестировании?