0

ユーザー入力用のコードがあります:

class Z
  def self.input()
    val = $stdin.gets.chomp
    if val == "123"
      p "Ok"
    else
      p "none"
    end
  end
end

さまざまなデータをテストしたい:

describe "Z" do
  it "should receive none"
    Object.stub!(:gets){"das"}
    Z.input
    Object.should_receive(:p).with("none")
  end
end

しかし、私はエラーが発生します:

Failure/Error: Object.should_receive(:p).with("none")
   (<Object (class)>).p("none")
       expected: 1 time
       received: 0 times

出力をテストするには?ありがとう。

4

1 に答える 1

0

これを試して:

describe Z do
  it "should print into stdout" do
    $stdin.stub(:gets).and_return("das")
    $stdout.should_receive(:p).with("none")
    Z.input
  end
end
于 2012-07-25T11:16:22.263 に答える