Завершение кода Capybara в RubyMine - PullRequest
6 голосов
/ 03 апреля 2011

Есть ли способ получить некоторую помощь от завершения кода RubyMine при использовании Capybara в определениях шагов Cucumber ?Я новичок в Капибара , поэтому не нужно постоянно проверять справочный сайт.

Лучшее, что я могу получить в данный момент, - это явно позвонить Session.newчто-то вроде:

session = Capybara::Session.new(:rack_test, my_app)

Таким образом Ctrl+Space после session. показывает мне методы из Capybara :: Session (только), так что, по крайней мере, я знаю, что это как-то достижимо.Но это не то, как я действительно использую Капибара в моих определениях шагов.Я подумал, что помочь механизму логического вывода с помощью ручного аннотирования page может помочь, но я полагаю, что вся эта магия DSL слишком сложна для обработки.

Так что, в принципе, так или иначевозможно ли всплывающее окно

page.<Ctrl+Space>

со всеми открытыми DSL методами? RubyMine API возможно?Или, в качестве альтернативы, каким-то другим способом приблизить справочные документы (я не думаю, что RubyMine пока поддерживает внешние документы в IDE)?

1 Ответ

0 голосов
/ 13 сентября 2014

Начиная с RubyMine 8.0.3, ответ отрицательный, RubyMine не завершает методы Capybara, следуя page. в определениях шагов Cucumber, по крайней мере, если Capybara включен в Cucumber через гем огурцов-рельсов. Я не вижу запроса функции в системе отслеживания проблем RubyMine ;кто-то может добавить один, если ему нравится.

Обратите внимание, что огуречные рельсы, по крайней мере, включают DSL Capybara в мире огурцов, поэтому вам не нужно вводить page. перед методами Capybara.Вы можете просто вызвать visit, fill_in и т. Д. Как самостоятельные методы.Я бы не хотел ненужных page. в моих определениях шагов просто ради завершения RubyMine.

К сожалению, RubyMine также не включает методы Capybara в список имен, которые он завершает, когда вы вызываете завершение в определении шага перед тем, как что-либо вводить.Он включает методы Capybara в список имен, которые он завершает, когда вы вызываете завершение дважды (все имена во всем доступном коде), но так как этот список очень длинный, он полезен только в том случае, если вы уже знаете метод, который вам нужен, или, по крайней мере,правильный префикс.

...