ruby - Ruby RSpec 只为一个上下文定义 before/after 钩子
问题描述
我有以下 RSpec 测试结构:
RSpec.describe A do
context C1 do
it EX1a do
end
....
it EX1n do
end
end
context C2 do
it EX2a do
end
...
end
end
我现在要定义一个钩子,它只为上下文 C1 中的示例运行设置和关闭 wordk。我怎样才能做到这一点?根据我对hooks 结构的理解, usingbefore(:context)
将在每个上下文(包括 C2)之前执行一次,而before(:example)
将在每个示例之前执行一次(包括 EX2a),这不是我想要的。
我有 RSpec 3.8
解决方案
不完全是。这取决于您放置before
积木的位置。当您将它们放在这样的上下文中时
RSpec.describe A do
context C1 do
before { do_something }
it EX1a do
end
it EX1n do
end
end
context C2 do
it EX2a do
end
end
end
那么before
回调只会在运行之前执行EX1a
,EX1n
而不是之前执行EX2a
。
块类似before(:context)
。从文档中引用:“before(:context)
在一组中的所有示例之前只运行一次”。一个context
块定义一个group
.
推荐阅读
- r - 如何使用 R 中的 Lpsolve 检索优化目标函数中的变量值
- python - 如何使x轴刻度为a^3?
- sql - 可为空的外键或不同的表
- php - 在使用 TCPDF 库的 yii2 中,我收到“加载 PDF 文档失败”。错误
- python - 过滤列表内字典中的项目
- python - 是否可以通过不同格式的字符串输入在 Python3 中标准日期时间
- lucene - Lucene.Net 理解为什么带有 BooleanQuery 的 TermRangeQuery 没有返回值
- asp.net - 为什么即使我使用 ninject 注入依赖项,我也会收到 MissingMethodException?
- java - 如何从文件中读取整数到数组
- react-native - 如何在收到通知时触发“onNotification”功能?