- RSpec 教程
- RSpec - 主页
- RSpec - 介绍
- RSpec - 基本语法
- RSpec - 编写规范
- RSpec - 匹配符
- RSpec - 测试替身
- RSpec - 存根
- RSpec - 钩子
- RSpec - 标记
- RSpec - 主题
- RSpec - 帮助程序
- RSpec - 元数据
- RSpec - 过滤
- RSpec - 预期
- RSpec 资源
- RSpec - 快速指南
- RSpec - 有用资源
- RSpec - 讨论
RSpec - 预期
在你学习RSpec时,你可能会读到很多关于预期的内容,一开始可能会有一些困惑。当你看到术语预期时,你应当牢记两个要点 -
预期只是一种包含在it块中的声明,使用expect()方法。就是这样。一点也不复杂。当你拥有如下代码时:expect(1 + 1).to eq(2),你的示例中就会包含一个预期。你预期表达式1 + 1评估结果为2。但是措辞很重要,因为RSpec是一个BDD测试框架。通过将此语句称为预期,可以清楚地看出你的RSpec代码正在描述它正在测试的代码的“行为”。其思想是你以一种类似文档的方式表达代码应该如何表现的行为。
期望语法相对较新。在引入expect()方法之前 (2012年),RSpec使用了基于should()方法的不同语法。在旧语法中,上述预期写成如下:(1 + 1).should eq(2)。
使用旧版本的RSpec或基于旧代码时,你可能遇到旧的RSpec语法。如果你将旧语法与新版本的RSpec一起使用,则将看到警告。
例如,使用以下代码 -
RSpec.describe "An RSpec file that uses the old syntax" do it 'you should see a warning when you run this Example' do (1 + 1).should eq(2) end end
运行时,你将获得如下所示的输出 -
. Deprecation Warnings: Using `should` from rspec-expectations' old `:should` syntax without explicitly enabling the syntax is deprecated. Use the new `:expect` syntax or explicitly enable `:should` with `config.expect_with( :rspec) { |c| c.syntax = :should }` instead. Called from C:/rspec_tutorial/spec/old_expectation.rb:3 :in `block (2 levels) in <top (required)>'. If you need more of the backtrace for any of these deprecations to identify where to make the necessary changes, you can configure `config.raise_errors_for_deprecations!`, and it will turn the deprecation warnings into errors, giving you the full backtrace. 1 deprecation warning total Finished in 0.001 seconds (files took 0.11201 seconds to load) 1 example, 0 failures
除非必需使用旧语法,强烈建议你使用expect()而不是should()。
广告