Если вы используете Builder (с использованием, запуском и т. Д.), То он не выглядит так, что вы можете легко вводить или удалять промежуточное ПО во время выполнения. Вот код: https://github.com/rack/rack/blob/master/lib/rack/builder.rb
Обратите внимание, что он создает стек промежуточного программного обеспечения, а при вызове run он создает экземпляр стека (называемый «@use») в дереве объектов промежуточного слоя, каждый из которых имеет ссылку на следующий - см. методы «use» и «to_app».
Итак: не думайте, что Builder предназначен для динамического добавления и вычитания промежуточного программного обеспечения в стеке.
Вы можете перестроить новый динамический стек или использовать несколько приложений Rack с и без тестирования промежуточного программного обеспечения или выполнить некоторые обратные действия, например Rails, для динамической перенастройки стека.
Вы также можете добавить тестовое промежуточное программное обеспечение только в тестовом режиме, или тот, который можно легко деактивировать, чтобы он стал промежуточным промежуточным программным обеспечением. Затем ваш spec_helper просто установил и очистил переменную, сообщающую ей пройти.
ОК, спасибо. Я думал, так как вы можете сделать это в Rails, возможно, это можно будет сделать в Rack. В настоящее время я использую отдельную сборку Rack для тестов, но это создает дублирование. Я думаю, что это лучше, чем загрязнение сборки сборки тестовым кодом. –
Раздельный строитель стойки для испытаний, вероятно, столь же чист, как и вы, здесь. –
Rails хранит другой стек не-Builder. Если вам нужно это для других вещей, отлично. Но если вам нужно было создать/скопировать это только для этой проблемы, это будет слишком много кода и сложности для результата. –