ruby 在RSpec中测试STDOUT 3

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 在RSpec中测试STDOUT 3相关的知识,希望对你有一定的参考价值。

* [ruby - rspec commandline variable input - Stack Overflow](https://www.relishapp.com/rspec/rspec-expectations/v/3-1/docs/built-in-matchers/output-matcher)
* [rspec3で標準入力と標準出力のテスト - memo-mode](http://ganmacs.hatenablog.com/entry/2014/07/26/231607)
* [`output` matcher - Built in matchers - RSpec Expectations - RSpec - Relish](https://www.relishapp.com/rspec/rspec-expectations/v/3-1/docs/built-in-matchers/output-matcher)
class Mirror
  def echo
    puts 'enter something: '
    response = gets.chomp
    puts "#{response}"
  end
end

# ------------------------

require 'rspec'

describe Mirror do
  let(:solver) { described_class.new }

  before do
    # Set fixed input
    allow(ARGF).to receive(:gets) { "phrase\n" }
  end

  describe 'mirror#echo' do
    it { expect { solver.echo }.to output(/phrase/).to_stdout }
  end
end

以上是关于ruby 在RSpec中测试STDOUT 3的主要内容,如果未能解决你的问题,请参考以下文章

ruby [rspec]“使用RSpec测试Rails程序”笔记

ruby ruby rspec测试示例

ruby 1.9 和 RSpec2 有啥好的突变测试工具吗?

ruby 用Rspec测试模型

在编写rspec测试用例时如何覆盖ruby方法的局部变量?

ruby Rspec测试的最大命中:第1卷