我在 rails 和 emberjs 应用程序上运行测试,并在我的测试中设置了 :js => true 。我可以在规范中删除 binding.pry 并且它会弹出打开 REPL 就好了,但是如果我在应用程序中删除 binding.pry,REPL 将显示在控制台中,但规范继续。我相信,这是因为使用 poltergeist 作为驱动程序,capybara 在一个线程中运行规范,而在另一个线程中运行应用程序。有没有办法进行设置,以便我可以在应用程序代码中使用 binding.pry 打开 REPL 并暂停应用程序和规范?
这是一个运行良好的 binding.pry 语句的示例,并且被遗忘了:
作品:
employee_signs_in_spec.rb
require 'spec_helper'
feature 'Visitor signs in', :js => true do
scenario 'Success' do
visit '/sign_in'
sign_in_as(FactoryGirl.create(:employee, confirmed_at: Time.now))
binding.pry
page.should have_content('Example Content')
end
end
被抛在后面:
session_controller.rb
class SessionsController < Devise::SessionsController
include Devise::Controllers::Helpers
respond_to :json
def create
binding.pry
# code for create action
end
end