次のようなrubyfile.rbがあるとします。
if __FILE__ == $0 then
if ARGV[0] == 'foo'
puts "working"
# Dir.chdir(../)
v = Someclass.new
v.do_something
end
end
working
ファイルがのようにトリガーされた場合にのみ印刷することを想定していますruby file.rb foo
。
私の質問:その種のstufをrspec内でどのようにテストできますか?
私の試みは以下の通りです。ファイルは実行されましたが、rspecテストの範囲内ではありませんでした。
Dir expected :chdir with (any args) once, but received it 0 times
it 'should work' do
FILE = File.expand_path('file.rb')
RUBY = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
@v = Someclass.new
Someclass.should_receive(:new).and_return @v
@v.should_receive(:do_something)
`#{RUBY} #{FILE} foo`
end