У меня есть эта функция, я не уверен, как мне выполнить модульное тестирование. Я немного читал о том, что внутри тестовой функции нет бизнес-логики c, а также пытался избежать тавтологии в функции
Примечание: это python, и я использую unittest
библиотека из python
SOME_CONSTANT = "constant"
def foo(a, b, c):
arg1 = "something-{}".format(a)
arg2 = {
"p1": b + 1,
"p2": SOME_CONSTANT,
}
arg3 = c
bar(arg1, arg2, arg3)
def bar(arg1, arg2, arg3):
pass
Предполагая, что bar
уже проверен модулем, я могу высмеять bar
в моем foo
модульном тесте, когда я проверяю foo
.
Мой текущий модульный тест для этого выглядит следующим образом
@patch(bar) # this mocks the bar function
def test_foo(mock_bar):
a = 1
b = 2
c = 3
foo(a, b, c)
arg1 = "something-{}".format(a)
arg2 = {
"p1": b + 1,
"p2": SOME_CONSTANT
}
arg3 = c
mock_bar.assert_called_with(arg1, arg2, arg3)
Это не правильно, так как я копирую logi c в модульный тест. Есть ли лучший способ для модульного тестирования этого?