我有一個返回多個值的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