我目前正在使用rspec-core-3.1.7
我已经继承的rails应用程序。看起来之前的所有者在他们的测试套件上取得了很大的进步,但我似乎无法让它正常工作。我的spec_helper.rb
和rails_helper.rb
来自rails generate rspec:install
,并进行了一些小调整。
测试的设置方式如下:
require "rails_helper"
RSpec.describe FooController, :type => :routing do
...
这是相关的错误消息:
athan@spacerobot:~/website$ rake spec:routing
/home/athan/.rbenv/versions/2.1.2/bin/ruby -I/home/athan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib:/home/athan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-support-3.1.2/lib /home/athan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/exe/rspec --pattern ./spec/routing/\*\*/\*_spec.rb
/home/athan/website/spec/routing/foo_routing_spec.rb:3:in `<top (required)>': uninitialized constant FooController (NameError)
from /home/athan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `load'
from /home/athan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rspec-core-3.1.7/lib/rspec/core/configuration.rb:1105:in `block in load_spec_files'
...
但由于某些原因,在抛出NameError之前,我无法rspec
找到FooController
。在描述RSpec测试时,假装存在这些类是一种常见的约定吗?他们会从哪里来......?我该如何正确定义测试描述?
答案 0 :(得分:0)
我对rails使用rspec的方式不太熟悉,但我确实对我的测试套件使用了很多。我怀疑你需要将fooController的require添加到spec_helper.rb或rails_helper.rb中。在我的例子中,我需要spec_helper.rb中的所有测试框架组件,以便它们可用于所有要使用的测试。希望有所帮助。