2016-04-15 12 views
-1

本当に簡単な質問ですが、Rubyスクリプトで単純な関数をテストする方法を理解できません。Rspecは単純なスクリプトで関数をテストします

非常にシンプルな機能:

def s2hm(s) 
    "%sh %sm" % [s/3600, s/60 % 60].map { |t| t.to_s } 
end 

それだけで単純なスクリプトなので、私はクラスを持っていない、とそこにすべてのドキュメントはユニットテストクラスについて話しているようです。

だから、RSpecの中で、私はおそらくのようなものがあります。

describe '#s2hm' do 
    it 'should convert seconds to hours and minutes' do 
    ... # what goes here 
    end 
end 

を誰かが私がブロックを記述することに完了したい方にお勧めしてもらえますか?どうもありがとう。このような何かに苦しんで誰のために、私はそれを使用して動作するようになった

+0

あなたの質問は何ですか? – sawa

+2

メソッドを呼び出して、戻り値が既知の入力であると予想される値であることを確認します。 http://www.rubydoc.info/gems/rspec-expectations/frames – KorreyD

+0

@KorreyD私はそれを見ましたが、それは本当に私を助けません。私は「21h 18m」を返すために関数 's2hm'が渡されたとき '12345678'を期待しています。私は過去4時間にわたって見つけられた構文のすべての組み合わせを試しましたが、何も機能していません。 –

答えて

1

describe '#s2hm' do 
    it 'should convert seconds to hours and minutes' do 
    expect(s2hm(7320)).to eq '2h 2m' 
    end 

    it 'should convert seconds to hours and minutes' do 
    expect(s2hm(7200)).to eq '2h 0m' 
    end 

    it 'should convert seconds to hours and minutes' do 
    expect(s2hm(12345678)).to eq '3429h 21m' 
    end 
end 
関連する問題