当我运行我的规范时,我收到以下错误:
1) TasksController#index returns incompleted tasks
Failure/Error: it { expect(json).to_have(1).tasks }
NameError:
undefined local variable or method `json' for #<RSpec::ExampleGroups::TasksController::Index::ReturnsIncompletedTasks:0x00000005df8018>
以下是规范:
describe "#index" do
let!(:task){ FactoryGirl.create(:task) }
context 'returns incompleted tasks' do
before do
get 'index', user_id: user.id, format: :json
end
it { expect(json).to_have(1).tasks }
end
end
这是我的控制器:
def index
#Some stuff
render json: tasks
end
为什么会这样?
答案 0 :(得分:1)
你做错了。这是测试json响应的方法
expect(response).to have_http_status(:success)
expect {
JSON.parse(response.body)
}.to_not raise_error
要使用您首先需要解析的实际内容
result = JSON(response.body)
expect(result.length).to eq(1)