【问题标题】:Run program from console independently from tests独立于测试从控制台运行程序
【发布时间】:2016-02-27 05:23:33
【问题描述】:

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

class MyProgram
end
MyProgram.new.start

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

有没有办法解决这个问题?

【问题讨论】:

    标签: ruby


    【解决方案1】:

    我不是 ruby​​ 专家,但我相信你可以使用类似 this:

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

    【讨论】:

    • 这很好用,谢谢!我会尽快接受你的回答。
    • 谢谢,很高兴能帮上忙!
    【解决方案2】:

    使用 RSpec,您可以在触发它的测试之前对 start 方法进行存根。比如:

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

    【讨论】:

      猜你喜欢
      • 2010-10-18
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      • 2019-04-29
      • 2021-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多