RSpec 期望机制深度解析
在行为驱动开发(BDD)中,精准表达至关重要。我们期望使用能促进团队成员间沟通的语言、实践和流程,而不考虑每个人对技术问题的理解程度。这就是为什么我们喜欢使用像 Given、When 和 Then 这样的非技术词汇。同时,我们更倾向于使用“期望”(expectations)而非“断言”(assertions)。
1. RSpec 期望基础
在可执行代码示例中,我们设置的是对应该发生的事情的期望,而非必然会发生的事情。RSpec 的期望框架中嵌入了 “should” 这个词。例如,若期望一个计算结果为数字 5,可以这样表达:
result.should equal(5)
这就是一个 RSpec 期望的示例,它表明在代码示例执行的特定点,某个事物应该处于某种状态。RSpec 还有其他一些期望示例:
message.should match(/on Sunday/)
team.should have(11).players
lambda { do_something_risky }.should raise_error(
RuntimeError, "sometimes risks pay off ... but not this time"
)
2. should、should_not 和匹配器
RSpec 通过利用 Ruby 的开放类特性,为系统中的每个对象添加了 should() 和
超级会员免费看
订阅专栏 解锁全文
774

被折叠的 条评论
为什么被折叠?



