我已经使用RSpec 3几天了,我意识到我不完全理解所提供的before/after挂钩。
我的困惑在两个方面-
- 可用的各种挂钩参数-
:suite
、:context
、:example
、:all
、:each
(我缺了吗?)。前三个似乎是新的,因为我只见过最后两个。最后两个现在是否已被弃用并被其他两个取代 - 上述各项所涵盖的范围-
- 我猜
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
除此之外,我建议阅读文档,其中包括特定测试场景的工作示例。