测试 怎么才能测试 grape 的 api

sanvi · 2013年09月11日 · 最后由 ruby_sky 回复于 2013年09月11日 · 4492 次阅读

1) FileServer::API GET /api/apps/:app with apk real number code Failure/Error: get "/api/apps/s" NoMethodError: undefined method call' for #<App:0x007f8ac2096830> # ./spec/api/api_spec.rb:11:inblock (4 levels) in '

我想在 rspec 里面去 测试 grape 的 api,但是他总是报这个错误

我在浏览器里直接可以访问

已经尝试增加

config.include RSpec::Rails::RequestExampleGroup, :type => :request, :example_group => {
  :file_path => /spec\/api/
}

wiki(http://ruby-china.org/wiki/gems)里面有介绍的哈 rest-client 简单强大的 HTTP/REST 客户端,跟 Grape 配合起来很完美

#1 楼 @xiaogui 我是想在 rspec 里面去测试 api

https://github.com/intridea/grape#writing-tests

#3 楼 @ruby_sky 试过了,不行

#4 楼 @sanivbyfish 怎么不行?什么错误?

#5 楼 @ruby_sky NoMethodError: undefined method call' for #<App:0x007f8655814290> # ./spec/api/apps_spec.rb:11:inblock (4 levels) in '

#6 楼 @sanivbyfish 是不是让我猜 spec/api/apps_spec.rb:11 这边的代码是什么?

#7 楼 @ruby_sky

require 'spec_helper'

describe FileServer::API do

  describe "GET /api/apps/:package" do
    context "with apk" do
      let(:build) {create(:build,:icon_file)}
      let(:app) {create(:app,build: build )}
      it "real number code" do
        app
        get "/api/apps/#{app.package}"
      end


    end
  end
end

#8 楼 @sanivbyfish 这个看起来已经是你的app 这个错误,与 grape 没什么关系。这个app 是什么东西?

#9 楼 @ruby_sky 。。。。似乎是的,但是为什么他报在 11 行呢,而且之前直接写连接也不行,个么蛮奇怪的,app 是我用 factorygirl 构建的对象

#10 楼 @sanivbyfish app对应的是某个 model。

#11 楼 @ruby_sky 对的,如果是对象错误,那么应该提示相应得行数,结果错误在 get 那里,找了我半天

#12 楼 @sanivbyfish get 里面 app.package 你在 debugger console 里测试下是不是这边的错误。

#13 楼 @ruby_sky 把 let 去掉,把 app 也去掉,只用 get 没问题 但是加上,用固定 url,他就爆上面的错误,而且在 get 那一行

需要 登录 后方可回复, 如果你还没有账号请 注册新账号