0
私はPythonモックをテストしようとしていますが、実際の結果ではなく模擬オブジェクトを示す戻り値をpringすると、結果が期待どおりになりません。pythonモックの戻り値が正しくない
import mock
import unittest
import constants
import requests
class GetAddr():
def __init__(self,name=''):
self.name = name
def call_api(self):
incr = 1
self.no_of_calls(incr)
r = requests.get('http://test.com')
return r.text
def no_of_calls(self,incr):
counter = incr + 1
return counter
class TestGetAddr(unittest.TestCase):
maxDiff = None
def test_case_1(self):
self.getaddr = mock.MagicMock(GetAddr(name='John'))
self.getaddr.return_value = {
'return_code':200,
'text':'CA, USA'
}
print self.getaddr.call_api()
if __name__ == '__main__':
unittest.main()
出力: -
<MagicMock name='mock.call_api()' id='4526569232'>
期待される結果: - 辞書を印刷するには
{
'return_code':200,
'text':'CA, USA'
}
。その結果、彼らはまだまだ立ち往生しています(https://stackoverflow.com/q/47621235/3001761)。クラスの名前にもかかわらず、この**は 'TestGetAddr'ではありません! – jonrsharpe
@jonrsharpe、指摘してくれてありがとう、私は間違いなく最も重要な詳細を逃した。答えが更新されます。 –