还有以下代码有点疑惑:
success_test = mock.Mock(return_value=data) #这是使用Mock方法后返回的东西赋值给success_test
post_request = success_test #这里是用来替换掉post_request方法的意思么?
res = post_request
self.assertEqual(“11222”,res()) #res()的意思是不是因为post_request()是一个方法, 所以res得加个()说明是一个方法而不是一个变量?
**
**
import unittest
import mock
import requests
url = "http://www.imooc.com/login"
data = {
“username”: “111111”,
“password”: “11112”
}
def post_request(url, data):
res = requests.post(url, param=data).json()
return res
class TestLogin(unittest.TestCase):
def setUp(self):
print(‘Test started…’)
def tearDown(self):
print(‘Test ended…’)
def test_01(self):
url = 'http://www.imooc.com/login/register’
data = {
‘username’: ‘111111’
}
success_test = mock.Mock(return_value=data)
post_request = success_test
res = post_request
self.assertEqual(“11222”,res())
if name == ‘main’:
unittest.main()
**
**
Testing started at 20:56 …
C:\Users\Administrator\AppData\Local\Programs\Python\Python36\python.exe “C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pycharm_jb_unittest_runner.py” --path C:/Users/Administrator/PycharmProjects/Android/test_mock.py
Launching unittests with arguments python -m unittest C:/Users/Administrator/PycharmProjects/Android/test_mock.py in C:\Users\Administrator\PycharmProjects\Android
Test started…
Test ended…
{‘username’: ‘111111’} != 1111
Expected :1111
Actual :{‘username’: ‘111111’}
Traceback (most recent call last):
File “C:\Program Files\JetBrains\PyCharm 2018.2.4\helpers\pycharm\teamcity\diff_tools.py”, line 32, in _patched_equals
old(self, first, second, msg)
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\unittest\case.py”, line 829, in assertEqual
assertion_func(first, second, msg=msg)
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\unittest\case.py”, line 822, in _baseAssertEqual
raise self.failureException(msg)
AssertionError: ‘1111’ != {‘username’: ‘111111’}
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\unittest\case.py”, line 59, in testPartExecutor
yield
File “C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\unittest\case.py”, line 605, in run
testMethod()
File “C:\Users\Administrator\PycharmProjects\Android\test_mock.py”, line 31, in test_01
self.assertEqual(‘1111’, res())
Ran 1 test in 0.016s
FAILED (failures=1)
Process finished with exit code 1