Предположим, что я хотел бы проверить следующее КОЛБУ API (от http://flask-restful-cn.readthedocs.io/en/0.3.5/quickstart.html#a-minimal-api):Как модульного тестирования Колбу, RESTful API
import flask
import flask_restful
app = flask.Flask(__name__)
api = flask_restful.Api(app)
class HelloWorld(flask_restful.Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
if __name__ == "__main__":
app.run(debug=True)
Накопив это как flaskapi.py
и запустить его в том же каталоге, я бегу сценарий test_flaskapi.py
:
import unittest
import flaskapi
import requests
class TestFlaskApiUsingRequests(unittest.TestCase):
def test_hello_world(self):
response = requests.get('http://localhost:5000')
self.assertEqual(response.json(), {'hello': 'world'})
class TestFlaskApi(unittest.TestCase):
def setUp(self):
self.app = flaskapi.app.test_client()
def test_hello_world(self):
response = self.app.get('/')
if __name__ == "__main__":
unittest.main()
Оба испытания проходят, но для второго испытания (определенного в TestFlaskApi
) классе я еще не понял, как утверждать, что ответ JSON, как и ожидалось (а именно, {'hello': 'world'}
). Это связано с тем, что это экземпляр flask.wrappers.Response
(который, вероятно, по существу является объектом Werkzeug Response (см. http://werkzeug.pocoo.org/docs/0.11/wrappers/)), и я не смог найти эквивалент метода json()
для объекта requests
'Response.
Как я могу сделать утверждения о содержании JSON второго response
?
«Статус: API фляжки в настоящее время не находится в активной разработке». от https://github.com/flask-api/flask-api – TheGrimmScientist