max*_*max 5 ruby rspec ruby-on-rails zeus
使用rspec-rails3.0+,测试设置被拆分为spec_helper,rails_helper并且我注意到生成的spec_helper没有require 'rspec/rails'.
这会导致宙斯崩溃:
spec_helper.rb:5:in `<top (required)>': undefined method `configure' for RSpec:Module (NoMethodError)
Run Code Online (Sandbox Code Playgroud)
对这个问题最常见的回应是require 'rspec/rails'.
但是,这不会打破拆分轨道规格和PORO规格的整个目的spec_helper吗?或者这不重要,因为Zeus预先加载了Rails?
我应该在我这样做spec_helper吗?
# Zeus does not preload RSpec
require 'rspec/core' unless defined? RSpec.configure
Run Code Online (Sandbox Code Playgroud)
请注意,在生成的rails_helper包含中:
ENV["RAILS_ENV"] ||= 'test'
require 'spec_helper'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
# Add additional requires below this line. Rails is not loaded until this point!
Run Code Online (Sandbox Code Playgroud)
你所描述的实质上是宙斯的一个错误.(它在提交中修复 - 请参阅下面的评论以获取链接)
你现在应该这样做是对的:
# Zeus does not preload RSpec
require 'rspec/core' unless defined? RSpec.configure
Run Code Online (Sandbox Code Playgroud)
问:但这不会破坏仅仅使用spec_helper的分离轨道规格和PORO规格的全部目的吗?
A.不是真的,因为分裂的目的是让RSpec在多个环境中使用; 你的上下文是Rails,所以你确实需要rspec/rails.
当你需要时rspec/core,应该足以让宙斯做它的启动(这应该反过来要求rspec/rails).如果您发现Zeus仍然无法正常工作,请执行建议的要求,rspec/rails直到Zeus团队对其设置进行排序.
问:你问过:或者这不重要,因为Zeus预先加载了Rails吗?
答:正确,对你的情况无关紧要.问题实际上只是Zeus为一个全新项目生成的文件中的负载排序故障.
| 归档时间: |
|
| 查看次数: |
566 次 |
| 最近记录: |