ruby – RSpec:我如何编写一个预期某些输出但不关心该方法的测试?

前端之家收集整理的这篇文章主要介绍了ruby – RSpec:我如何编写一个预期某些输出但不关心该方法的测试?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_403_1@我试图让我的头脑围绕测试驱动的设计,特别是RSpec.但是我从RSpec Book的一些例子中遇到麻烦.

在本书中,我们以$STDOUT的形式测试输出

output = double('output')
game = Game.new
output.should_receive(:puts).with('Welcome to Codebreaker!')
game.start()

那么,一个时尚之后的工作.但是为什么我应该关心Game对象使用puts()方法?如果我将其更改为print(),是否真的打破测试?而且更重要的是,这不是针对TDD的原则之一 – 我应该测试该方法(设计),而不是如何(实现)?

有没有办法我可以写一个测试,只是测试结果在$STDOUT,而不看什么方法把它放在那里?

解决方法

看看 this post.尼克提出了关于同一个例子的问题,一个非常有趣的对话在评论中.希望你觉得有帮助

猜你在找的Ruby相关文章