我具有无法确定应如何进行单元测试的功能。我已经读过一些关于在测试函数中没有业务逻辑的知识,以及试图避免函数中的重言式]
注意:这是python,我正在使用python的unittest
库
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)
这感觉不对,因为我正在将逻辑复制到单元测试中。有没有更好的方法来对此进行单元测试?
我具有无法确定应如何进行单元测试的功能。我已经读过一些关于在测试函数中没有业务逻辑的信息,以及尝试避免在函数中使用重言式。注:...
基本上,您需要测试的是foo
是否能够根据输入值-arg1
,arg2
和[ C0]。