pvi*_*nis 10 ruby stdin rspec stdout
我的Ruby程序从(终端)读取行stdin和用于puts打印的行stdout.我可以使用RSpec来测试读写吗?我可以将一个字符串注入我的程序,就像写入stdin并同时检查输出一样吗?
line = STDIN.read.chomp.split
Run Code Online (Sandbox Code Playgroud)
此外,我在循环中读取和写入,直到line[0]"退出".我可以测试回路运行时,或者我应该叫subject.read_in和subject.write_out?
Jon*_*han 16
您可以使用模拟并通过在方法中列出多个值来多次调用该and_return()方法.这些将按照给定的顺序返回,每次通话一次.
STDIN.should_receive(:read).and_return("Your string")
STDIN.should_receive(:read).and_return("value1", "value2", "value3")
Run Code Online (Sandbox Code Playgroud)
你可以用STDOUT做类似的事情:
STDOUT.should_receive(:puts).with("string")
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅RSpec模拟文档.
| 归档时间: |
|
| 查看次数: |
7989 次 |
| 最近记录: |