Mih*_*hai 1 rspec ruby-on-rails rspec-rails
我正在尝试使规范适用于项目。有一个规格设置但没有维护。
我有一个简单的帖子request spec
require 'rails_helper'
RSpec.describe 'Cars API', type: :request do
let(:organization) { Fabricate(:organization, owner: user) }
let(:app) { Fabricate(:app, organization: organization, owner: user) }
let(:user) { Fabricate(:user) }
before do
#login_api(user)
end
describe 'create' do
describe 'car type' do
it 'should create a car of type CarType1' do
expect(Car.count).to eql(0)
id = '123'
post("/api/1/organization/#{id}/cars")
expect(Car.count).to eql(1)
car = Car.first
expect(car.type).to eql(Car::CarType1)
end
end
end
end
Run Code Online (Sandbox Code Playgroud)
我得到
#<NoMethodError: undefined method `call' for #<App:0x007fee64557080>>
Run Code Online (Sandbox Code Playgroud)
我尝试调试该问题,但没有成功。问题发生在线路上post("/api/1/organization/#{id}/cars")。问题可能出在哪里?
我遇到了这样的问题;)(并花了几个小时来调试源代码)
尝试重命名app为ap或类似的变量。
# "bad" name
let(:app) { ... }
# "better" name
let(:ap) { ... }
# or
let(:my_app) { ... }
Run Code Online (Sandbox Code Playgroud)
据我了解,当 RSpec 初始化惰性块时,变量名存在问题let。不确定,但我认为此时App已经初始化,并且 RSpec 发送方法call不会阻塞let,而是阻塞到另一个对象。
注意:您可以使用 before 块并使用实例变量@app
| 归档时间: |
|
| 查看次数: |
907 次 |
| 最近记录: |