2016-04-15 54 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我已经看到了,但它并没有真正帮助我。我想说的是“期望函数s2hm在通过'12345678'时返回'21h 18m'。我已经尝试过在过去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 
相关问题