【发布时间】:2016-02-27 05:23:33
【问题描述】:
我有一个应该在控制台中运行的程序。在一个名为 my_program.rb 的文件中,我有:
class MyProgram
end
MyProgram.new.start
我还有一个单独的my_program_test.rb,每次我想运行测试时,我都需要注释掉MyProgram.new.start,以避免在控制台中运行程序。
有没有办法解决这个问题?
【问题讨论】:
标签: ruby
我有一个应该在控制台中运行的程序。在一个名为 my_program.rb 的文件中,我有:
class MyProgram
end
MyProgram.new.start
我还有一个单独的my_program_test.rb,每次我想运行测试时,我都需要注释掉MyProgram.new.start,以避免在控制台中运行程序。
有没有办法解决这个问题?
【问题讨论】:
标签: ruby
我不是 ruby 专家,但我相信你可以使用类似 this:
if __FILE__ == $0
MyProgram.new.start
end
【讨论】:
使用 RSpec,您可以在触发它的测试之前对 start 方法进行存根。比如:
before do
allow_any_instance_of(MyProgram).to receive(:start).and_return(true)
end
【讨论】: