假设这种情况:
import random
import string
class objectToMock:
Arg1:list = []
Arg2:list = None
def __init__(self, arg1:list, arg2:str):
self.Arg1 = arg1
self.Arg2 = arg2
return
def functionToTest():
#Get list of random numbers.
listArg = []
for x in range(0,5):
listArg.append(random.randint(1,1000))
#Get a random string
stringArg = \
''.join(random.choices(string.ascii_uppercase + string.digits, k=5))
return objectToMock(listArg, stringArg)
如果我想测试functionToTest
函数,我应该如何模拟objectToMock
,以便获得传递给objectToMock
构造函数的值?你知道吗
到目前为止,我已经做到了:
import unittest.mock
import #Module with my test objects
def Test_functionToTest
with mock(objectToMock) as mock_objectToMock:
result = functionToTest()
我不知道如何将值传递给mock\u objectToMock。你知道吗
您可以从模拟对象中获取
call_args_list
,并将其解压为tuple
。方法如下:请注意,我在一个脚本中运行了所有这些,因此我要修补的对象位于
__main__
。你的课应该在你班上的任何一个单元里。还要注意,我改变了所有的骆驼壳/蛇壳混合。您应该尽量遵循python风格的指南,因为它使您和其他人更容易阅读/维护您的代码。你知道吗相关问题 更多 >
编程相关推荐