独立于测试从控制台运行程序

时间:2015-11-24 16:44:25

标签: ruby

我有一个应该在控制台中运行的程序。在名为my_program.rb的文件中,我有:

class MyProgram
end
MyProgram.new.start

我还有一个单独的my_program_test.rb,每次我想运行我需要注释MyProgram.new.start的测试,以避免在控制台中运行程序。

有什么方法吗?

2 个答案:

答案 0 :(得分:1)

我不是红宝石专家,但我相信你可以使用类似this的东西:

if __FILE__ == $0
    MyProgram.new.start
end

答案 1 :(得分:0)

使用RSpec,您可以在触发它的测试之前存根start方法。类似的东西:

before do
  allow_any_instance_of(MyProgram).to receive(:start).and_return(true)
end