rspec检查数字实例的数组元素

时间:2015-04-02 09:10:31

标签: rspec

如何检查数组的元素是否只包含数字(整数)?

 describe "#draw" do
   it "returns an array" do
     expect(@lottery_tip.draw).to be_a_kind_of Array
   end
   it "has six elements" do
     expect(@lottery_tip.draw.count).to eq(6)
   end
   it "s elements are only numbers" do
     expect(@lottery_tip.draw).to ???
   end
 end

我的简单LotteryTip类有效,但我想知道如何检查返回数组中元素的类型...

2 个答案:

答案 0 :(得分:2)

您可以使用all matcher

expect(@tip.draw).to all(be_an(Integer))

答案 1 :(得分:0)

我不确定这是最好的还是至少是好的做法,但我在之前定义了一个自己的方法:每个做块:

def is_number?
  @tip.all? { |x| x.is_a? Integer }
end

所以我可以检查它阻止:

   it "s elements are only numbers" do
     expect(is_number?).to eq(true)
   end