Временный REST-сервер для клиентской разработки

Расширенный клиент 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 и веб-приложений.

Ответы (1)

По сути, вам нужно что-то, что будет имитировать ответ сервера. Какой метод имитации зависит от того, что вы используете для разработки своего клиента. Я использовал Mockito для разработки клиента Java. Есть Mockito для Python , но я им не пользовался. Из документации видно, что он предоставляет тот же набор функций, что и версия Java.

Mockito позволяет вам заменить объект фиктивным объектом, который возвращает только то, что вы ему говорите. Так, например, вы можете временно заменить вызов jsonify фиктивным методом, который будет возвращать строку json, содержащую некоторые тестовые данные, вместо того, чтобы пытаться связаться с сервером, которого там нет.

Кроме того, вопросы о насмешках над кодом абсолютно актуальны на SO.