如何在不使用 .items 关键字的情况下重做 rspec json 规范
How to rework rspec json spec without using .items keyword
任何人都可以告诉我编写此 rspec 规范的更新方法吗?它使用已弃用的关键字 "items",我不知道如何正确地使用它。当我包含匹配器 gem 时,我会遇到要使用哪个 rspec 版本的冲突,所以我只想避免一起使用它。
这是计算我在创建 4 时在索引中看到的课程数的规范:
expect(courses_response[:name]).to have(4).items
我正在匹配的示例字符串是:
{:courses=>[{:courses=>{:id=>1, :name=>"Wilford Rolfson"}}, {:courses=>{:id=>2, :name=>"Mabel Jacobi"}}, {:courses=>{:id=>3, :name=>"Madison Beahan"}}, {:courses=>{:id=>4, :name=>"Miles Corwin"}}]}
我试过:
expect(courses_response.length).to eq(4)
生成“1”而不是“4”
这三个产量为零:
expect(courses_response[:name]).to eq(4)
expect(courses_response[:id]).to eq(4)
expect(courses_response[:row]).to eq(4)
感谢您的帮助!
如果我理解正确的话,因为你返回的对象是一个带有单个键(:courses
)和值(包含课程的数组)的散列,你需要像这样检查该数组的长度:
expect(courses_response[:courses].length).to eq(4)
这是假设:
courses_response = {:courses=>[{:courses=>{:id=>1, :name=>"Wilford Rolfson"}}, {:courses=>{:id=>2, :name=>"Mabel Jacobi"}}, {:courses=>{:id=>3, :name=>"Madison Beahan"}}, {:courses=>{:id=>4, :name=>"Miles Corwin"}}]}
任何人都可以告诉我编写此 rspec 规范的更新方法吗?它使用已弃用的关键字 "items",我不知道如何正确地使用它。当我包含匹配器 gem 时,我会遇到要使用哪个 rspec 版本的冲突,所以我只想避免一起使用它。
这是计算我在创建 4 时在索引中看到的课程数的规范:
expect(courses_response[:name]).to have(4).items
我正在匹配的示例字符串是:
{:courses=>[{:courses=>{:id=>1, :name=>"Wilford Rolfson"}}, {:courses=>{:id=>2, :name=>"Mabel Jacobi"}}, {:courses=>{:id=>3, :name=>"Madison Beahan"}}, {:courses=>{:id=>4, :name=>"Miles Corwin"}}]}
我试过:
expect(courses_response.length).to eq(4)
生成“1”而不是“4”
这三个产量为零:
expect(courses_response[:name]).to eq(4)
expect(courses_response[:id]).to eq(4)
expect(courses_response[:row]).to eq(4)
感谢您的帮助!
如果我理解正确的话,因为你返回的对象是一个带有单个键(:courses
)和值(包含课程的数组)的散列,你需要像这样检查该数组的长度:
expect(courses_response[:courses].length).to eq(4)
这是假设:
courses_response = {:courses=>[{:courses=>{:id=>1, :name=>"Wilford Rolfson"}}, {:courses=>{:id=>2, :name=>"Mabel Jacobi"}}, {:courses=>{:id=>3, :name=>"Madison Beahan"}}, {:courses=>{:id=>4, :name=>"Miles Corwin"}}]}