Dar*_*isa 8 ruby rspec ruby-on-rails rspec-rails
我正在测试我的控制器动作以进行练习。在我的控制器中,我只想从数据库中按名称获取所有不同的产品:
def shop
@products = Product.select('distinct on (name) *').sort_by &:order
end
Run Code Online (Sandbox Code Playgroud)
我已经手动检查过了,效果很好。现在,我使用我的RSpec设置测试,我想测试@products是一个大于0的数组:
RSpec.describe PagesController, type: :controller do
describe 'GET #shop' do
it 'should get all proudcts' do
get :shop
expect(assigns(:products).count).to be > 0
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,我尝试了期望的几种不同组合...但是它一直告诉我它的值为nil或0,但我知道不是。如何测试一个数组大于0?
尝试
expect(assigns(:products)).to_not be_empty
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为数组响应empty?。另一种方法可能是
expect(assigns(:products).count).to be_positive
Run Code Online (Sandbox Code Playgroud)
因为整数响应 positive?
如果您想查看实际数量
expect(assigns(:products).count).to eq 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4107 次 |
| 最近记录: |