我在主模块中有一个函数,它接收两个值并对它们执行操作。这个函数使用了一个全局变量,在调用这个函数之前已经创建好了。
def calc(keys,values):
if globalvar == "calc":
return sum(keys)
else:
return sum(values)
现在进行单元测试
class Testcalc(TestCase):
@mock.patch('module.globalvar ', "calc")
def test_unit(self,calc):
keys=[1,2,3]
values=[4,5,6]
sum=module.calc(keys,values)
"""
check asserts
"""
我遇到了一个类型错误,因为参数无效。
TypeError('test_unit() takes exactly 2 arguments (1 given)',)
有人能向我展示正确的模拟全局变量的方法吗?
更新: 这对我有效,不确定原因。
class Testcalc(TestCase):
@mock.patch('module.globalvar')
def test_unit(self,var):
keys=[1,2,3]
values=[4,5,6]
var="calc"
sum=module.calc(keys,values)
"""
check asserts
"""
谢谢大家
test_unit()
函数的语句,即使用它的地方。 - GetHacked