Joh*_*ler 10 ruby tdd bdd rspec mocking
我在ruby项目中使用rspec进行测试,并且我想规定在使用-q选项时我的程序不应输出任何内容.我试过了:
Kernel.should_not_receive :puts
Run Code Online (Sandbox Code Playgroud)
当输出到控制台时,这不会导致测试失败.
如何验证文本输出的缺失?
Sut*_*tto 15
puts在内部使用$ stdout.由于它的工作方式,最简单的检查方法是简单地使用:$stdout.should_not_receive(:write)
哪个检查没有按预期写入stdout.Kernel.puts(如上所述)只会在它被明确地调用时导致测试失败(例如Kernel.puts"Some text"),其中大多数情况下它在当前对象的范围内调用.
| 归档时间: |
|
| 查看次数: |
3211 次 |
| 最近记录: |