2016-09-07 8 views
1

次のユニットテスト書き込み中:

def foo() 
    popen_response = "" 
    IO.popen(@packaging_cmd, :err=>[:child, :out]) {|io| popen_response = io.read } 
    rc = $? 
    @log.debug{"Response from IO.popen() : #{popen_response}. rc: '#{rc}'"} 
    if rc.exitstatus != 0 
    @log.error{"Packaging failed. rc: '#{rc}'"} 
    raise PackagingError.new("Packaging failed. rc: '#{rc}'") 
    end 
end 

を私は$?があると評価するもの/スタブを模擬する方法がわからないので、私はこだわっています。私は$?を返す関数を作成して、その機能やティンカーを模倣してIO.popen()に渡す関数を作成することでハックすることができますが、使用できるRRに公式な方法があるのだろうかと思います。

私は私はあなたが使用しているフレームワークをあざけるかわからないんだけど、RSpecの中で株式とrrTest::Unit::TestCase

require 'test/unit' 
require 'rr' 

答えて

1

を使用しています:

allow_any_instance_of(Process::Status).to receive(:exitstatus).and_return(0) 
関連する問題