挂钩之前/之后的RSpec之间的混淆



我已经使用RSpec 3几天了,我意识到我不完全理解所提供的before/after挂钩。

我的困惑在两个方面-

  1. 可用的各种挂钩参数-:suite:context:example:all:each(我缺了吗?)。前三个似乎是新的,因为我只见过最后两个。最后两个现在是否已被弃用并被其他两个取代
  2. 上述各项所涵盖的范围-
    • 我猜before(:context)before(:example)在每个context块和单个示例之前运行一次
    • 在给定的_spec文件中,before(:suite)是否在所有示例之前运行一次
    • 每个before(:xxx)块是否仅适用于其嵌套级别及以下级别的上下文和示例

谢谢!

根据文档,在rspec3中,:context:example被别名为:all:each

注意::example和:context作用域也可用作:each和:全部。用你喜欢的。

首先执行before :suite作用域,然后执行:context:example作用域:

before :suite
before :context
before :example
after  :example
after  :context
after  :suite

除此之外,我建议阅读文档,其中包括特定测试场景的工作示例。

最新更新