2016-08-03 8 views
0

私のメソッドpopulate()がnull以外の値を返す(それは整数> 0を返すが)正しく書き込むのに問題があるかどうかテストする。私が持っている:あなたが期待するようにコードを動作させる必要があることをメソッドが「非ヌル」の値を返すかどうかをテストする

describe House::Room do 
    describe '.populate' do 
    let(:info) {"people"=> 
         {"name"=>"Jordan", 
         "last_name"=>"McClalister"} 
       } 
    it 'should return an integer > 0' do 
     expect(House::Room.populate(info)).not_to eq(nil) 
    end 
    end 
end 

describe House::Room do 
    describe '.populate' do 
    let(:info) { 
     $info = {"people"=> 
         {"name"=>"Jordan", 
         "last_name"=>"McClalister"}} 
       } 
    it 'should return an integer > 0' do 
     expect(House::Room.populate(info)).not_to eq(nil) 
    end 
    end 
end 
+0

ここで最初に削除するのは '$ info ='です。必要ありません。あなたの期待は主題と一致していません。だからあなたがテストしているものを書いてください。これは読みやすさを助けます。 –

+0

Rubyでは '$'は*グローバル変数*を意味し、通常は何か間違っていることを意味します。これらはほとんど常に悪い計画であり、可能な限り避けるべきです。 – tadman

+0

@ArupRakshit、ちょうど 'info'でしょうか? – Mike

答えて

-1

あなたがにLETの割り当てを変更する必要があります。

しかし、「be_within」のような別のマッチャーを使用して、より具体的にしたい場合や、同じテストで複数のexpect文を記述することもできます。 0 'など...' it 'ブロックに含めることができるexpect文の数に制限はなく、テストはすべての期待値が一致するだけです。 (つまり、ベストプラクティスは個々のテストに分割するのがベストプラクティスだと思います)

関連する問題