刚刚开始学习RSpec和TDD,并且无法弄清楚为什么它根本不起作用。
#spec/api/event_api_spec.rb
describe 'Messages API' do
it 'check response' do
get 'api.mydomain.dev/events'
json = JSON.parse(response.body)
# test for the 200 status-code
expect(response).to be_success
end
end

我在api.mydomain.dev上创建了我的API,我的文件夹结构看起来像app / controllers / api / events_controller.rb
因此,当我尝试运行bundle exec rspec时,它显示了
NoMethodError:
undefined method `get' for #<RSpec::ExampleGroups::MessagesAPI:0x007fc34900cee0>
如果我想在我的规范文件#spec/api/event_api_spec.rb中尝试像Event.creat!(:name =&gt;&#39;我的事件&#39;)那样做> p>
NameError:
uninitialized constant Event
所以我不明白如何要求我的app / controllers / api / events_controller.rb文件到Spec文件中获取我的事件类的实例以使其工作。
使用默认控制器它可以正常工作,我只对API设置感兴趣,thx
答案 0 :(得分:0)
&#34;获得&#34;是控制器规格上可用的方法,尝试类似
describe 'Messages API', type: :controller do
告诉rspec你正在测试类似控制器的东西,或者只是做
describe EventsController do
关于&#34;未初始化的常量事件&#34;,在spec / api / event_api_spec.rb的开头试试这个
require 'rails_helper'
希望这会有所帮助,但是你的帖子有点令人困惑,不清楚你的api是在线还是什么,你不应该再次测试在线api,你应该在本地测试,规格永远不应该与真实的通信世界,除非它真的非常必要。