【发布时间】:2014-07-28 13:30:03
【问题描述】:
我有一个函数可以在 gon 的帮助下向 js 发送一个变量。
def calc_foo
# calculate foo
gon.foo = foo
end
我想测试这个函数,即使用 rspec 确保方法返回正确的值。
it "should return bar" do
foo = @foo_controller.calc_foo
expect(foo).to eq(bar)
end
但是,当测试用例到达将变量发送到 gon 的行时,我收到以下错误消息。
Failure/Error: foo = @foo_controller.calc_foo
NoMethodError:
undefined method `uuid' for nil:NilClass
我检查了 foo 的值,它不是 Nil,所以 gon 必须是 Nil。 我相信错误是我没有正确地包含 gon。这是我的 Gemfile 的 rspec 部分
#rspec-rails includes RSpec itself in a wrapper to make it play nicely with Rails.
#Factory_girl replaces Rails’ default fixtures for feeding test data
#to the test suite with much more preferable factories.
group :development, :test do
gem 'rspec-rails'
gem 'factory_girl_rails'
gem 'capybara'
gem 'gon'
end
那么我怎样才能让 rspec 与 gon 配合得很好呢? (我也尝试在我的规范文件中包含 gon,但没有成功)
【问题讨论】:
-
使用 -b 运行 rspec 以查看发生错误的位置。
-
@DaveSchweisguth 我运行 rspec -b 得到以下结果:/gems/gon-5.1.2/lib/gon/helpers.rb:49:in
gon_request_uuid' /gems/ruby-2.1.2@webgraphs/gems/gon-5.1.2/lib /gon/helpers.rb:32:ingon'
标签: ruby-on-rails rspec gon