如何单元以Ruby脚本的测试功能,而无需运行考虑了一堆的功能Ruby脚本脚本
问题描述:
,你怎么能单元测试脚本的功能,而不运行脚本本身? Here是一个示例脚本,而here是它的单元测试。如何单元以Ruby脚本的测试功能,而无需运行考虑了一堆的功能Ruby脚本脚本
例如,使用要求或在我的单元测试负载导致脚本测试执行之前执行。我有很多这些脚本,我真的更喜欢他们保持不变。
我想我可以将文件加载一个字符串,在内存和运行EVAL砍它了 - 如果可行的话,这种感觉就像一个可怕的解决方案。
任何想法或建议的策略将不胜感激。
答
通常你把最后几行实际运行脚本后卫里面是这样的:
if $0 == __FILE__
# do stuff
end
也就是说,如果第一个参数是这个文件,那么它正在运行一个脚本, “东西”将被执行;否则只会加载方法定义。
答
我喜欢做的是限制可执行的部分比一个对象的实例而已,甚至只是一个类的方法调用(可能通过CMD线参数)。然后编写一个或一系列将由脚本调用的类方法,但可以分别单独进行测试。
这可以很容易地TDD,更容易在其他地方重用。
很好的建议,虽然我试图避免这些行添加到脚本/ s的展示目的 - 我使用的脚本作为学习辅助(AI不是红宝石)。 – jasonb 2010-10-12 01:18:09