我想断言(实际上在rspec中)tags列表中的至少一项是非公开的。

it 'lets you select non-public tags' do
  get :new
  flag = false
  assigns(:tags).each do |tag|
    if tag.is_public == false
      flag = true
    end
  end
  flag.should eql true
end


有什么更好的惯用方法?

最佳答案

有百万种方法可以做到这一点:

# are any tags not public?
flag = assigns(:tags).any? { |tag| !tag.is_public }
flag.should eql true


要么

# Are none of the tags public?
flag = assigns(:tags).none?(&:is_public)
flag.should eql true


要么

# Find the first non-public tag?
flag = assigns(:tags).find { |tag| !tag.is_public}
flag.should_not eql nil

关于ruby-on-rails - 在测试中断言列表中项目的属性的设计模式是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16742652/

10-12 18:48