我已经和RSpec 3合作了几天,我意识到我并不完全理解所提供的前/后挂钩。
我的困惑在于两个方面 -
:suite
,:context
,:example
,:all
,:each
(我错过了吗?)。前3个似乎是新的,因为我只见过最后两个。现在最后两个是否被弃用并被其他人取代? before(:context)
和before(:example)
在每个context
块和单个示例之前运行一次。 before(:suite)
文件中的所有示例之前_spec
运行一次吗? before(:xxx)
块是否仅适用于其自己的嵌套级别及以下的上下文和示例? 谢谢!
答案 0 :(得分:1)
根据documentation,:context
和:example
在rspec3中的别名为:all
和:each
。
注意::example和:context作用域也可用作:each和 :所有,分别。使用您喜欢的任何一种。
首先执行before :suite
范围,然后执行:context
和:example
范围:
before :suite
before :context
before :example
after :example
after :context
after :suite
除此之外,我建议阅读文档,其中包括特定测试场景的工作示例。