测试输入\输出

时间:2012-07-25 10:49:28

标签: ruby testing rspec io

我有用户输入的代码:

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

如何测试输出? 感谢。

1 个答案:

答案 0 :(得分: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
相关问题