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 で使用できる公式の方法があるかどうか疑問に思います。

rrストックで使ってますTest::Unit::TestCase

require 'test/unit'
require 'rr'
4

1 に答える 1