我有一个返回多个值的python函数。我的功能:模拟具有多个返回值的python函数
def myExampleFunction(a,b)
# here is my code
return name, number1, number2
def FunctionIWantToTest(self):
# here is my code
myName, myNumber1, myNumber2 = self.myExampleFunction(a,b)
我想给我自己的值从FunctionIWantToTest返回的值。所以,我试图用nosetest测试第二个函数,但我不知道如何模拟myExampleFunction的返回值。
我尝试这样做:
def test_mytest(self):
[...]
c.myExampleFunction = Mock()
c.myExampleFunction.side_effect = ["myName", 100, 200]
[...]
但它不工作。当我推出nosetests时,我看到这条消息:
ValueError: too many values to unpack
有什么想法吗?我使用python 2.7.3
[文件](https://docs.python.org/3/library/unittest.mock.html#unittest。 mock.Mock):如果side_effect是一个迭代器,那么每次调用模拟器都会返回iterable中的下一个值。 – DreyFax
我回应自己:为我开火的代码:c.myExampleFunction.return_value =“myName”,100,200 – myg
这与Daniel的答案相同,所以请接受它。这使得有类似问题的用户更容易识别,这个答案起作用。评论中的答案很难找到。 – DreyFax