如何单元以Ruby脚本的测试功能,而无需运行考虑了一堆的功能Ruby脚本脚本

问题描述:

,你怎么能单元测试脚本的功能,而不运行脚本本身? Here是一个示例脚本,而here是它的单元测试。如何单元以Ruby脚本的测试功能,而无需运行考虑了一堆的功能Ruby脚本脚本

例如,使用要求或在我的单元测试负载导致脚本测试执行之前执行。我有很多这些脚本,我真的更喜欢他们保持不变。

我想我可以将文件加载一个字符串,在内存和运行EVAL砍它了 - 如果可行的话,这种感觉就像一个可怕的解决方案。

任何想法或建议的策略将不胜感激。

通常你把最后几行实际运行脚本后卫里面是这样的:

if $0 == __FILE__ 
    # do stuff 
end 

也就是说,如果第一个参数是这个文件,那么它正在运行一个脚本, “东西”将被执行;否则只会加载方法定义。

+0

很好的建议,虽然我试图避免这些行添加到脚本/ s的展示目的 - 我使用的脚本作为学习辅助(AI不是红宝石)。 – jasonb 2010-10-12 01:18:09

我喜欢做的是限制可执行的部分比一个对象的实例而已,甚至只是一个类的方法调用(可能通过CMD线参数)。然后编写一个或一系列将由脚本调用的类方法,但可以分别单独进行测试。

这可以很容易地TDD,更容易在其他地方重用。