Расширенный клиент REST — отличный инструмент тестирования для разработки сервера REST. Без этого мне пришлось сделать запрос, используя curl
командную строку. curl
не сложно использовать. Но Advanced REST client
он не только супер прост в использовании, но и полнофункциональный. Более того, мне не нужно разрабатывать клиент, чтобы протестировать его.
Проблема заключалась в разработке клиента , в то время как сервер также находился в процессе. Я не мог найти метод тестирования. Я написал этот код для захвата всех запросов с использованием flask
. Эта программа возвращает необходимую информацию с расширением Content-Type: application/json
.
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/', defaults={'path': ''}, methods=['GET', 'POST', 'PUT', 'DELETE'])
@app.route('/<path:path>', methods=['GET', 'POST', 'PUT', 'DELETE'])
def echo(path):
return jsonify(headers=str(request.headers),
args=request.args,
form=request.form,
method=request.method,
path=request.path,
url=request.url)
if __name__ == '__main__':
app.run(debug=True)
Мой вопрос: существует ли серверная версия, аналогичная расширенному клиенту REST?
Обратите внимание: этот вопрос перенесен из SO и веб-приложений.
По сути, вам нужно что-то, что будет имитировать ответ сервера. Какой метод имитации зависит от того, что вы используете для разработки своего клиента. Я использовал Mockito для разработки клиента Java. Есть Mockito для Python , но я им не пользовался. Из документации видно, что он предоставляет тот же набор функций, что и версия Java.
Mockito позволяет вам заменить объект фиктивным объектом, который возвращает только то, что вы ему говорите. Так, например, вы можете временно заменить вызов jsonify фиктивным методом, который будет возвращать строку json, содержащую некоторые тестовые данные, вместо того, чтобы пытаться связаться с сервером, которого там нет.
Кроме того, вопросы о насмешках над кодом абсолютно актуальны на SO.