bte*_*les 5 ruby rspec ruby-on-rails
Given I am a dumb programmer
and I am using rspec
and I am using spork
and I want to debug ...mmm...let's saaay, a spec for Phone.
Run Code Online (Sandbox Code Playgroud)
然后,我应该在哪里放置"require'ruby-debug'"行,以便停止在phone_spec.rb中的特定点处理?(我要求的是一个很大的箭头,即使是一个受到挑战的程序员也可以看到:-3)
我尝试了很多地方,除非我没有正确测试它们,否则会发生一些奇怪的事情:
在spec_helper.rb中的以下位置:
require 'rubygems'
require 'spork'
<= TRIED IT HERE
ENV["RAILS_ENV"] ||= 'test'
Spork.prefork do
require File.dirname(__FILE__) + "/../config/environment" #unless defined?(RAILS_ROOT)
require 'spec/autorun'
require 'spec/rails'
require 'machinist/active_record'
require 'faker'
require 'sham'
<= TRIED IT HERE
end
Spork.each_run do
require File.expand_path(File.dirname(__FILE__) + "/blueprints")
<= TRIED IT HERE
end
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
Spec::Runner.configure do |config|
config.use_transactional_fixtures = true
config.use_instantiated_fixtures = false
config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
config.before(:all) { Sham.reset(:before_all) }
config.before(:each) { Sham.reset(:before_each) }
<= TRIED IT HERE
end
Run Code Online (Sandbox Code Playgroud)
我用ruby-debug运行Spork和Autospec.Spork的更高版本有一个你可以要求的外部ruby-debug库,它是实验性的,所以使用风险自负.在我的prefork块我只有:
需要'spork/ext/ruby-debug'
它将突破到Spork运行的终端中的调试会话.有方法等启动远程连接设置等,最近的提交已经有更新和修复应用于他们的调试功能,所以它正在积极开发.希望它很快就会成为核心并经过测试......