为什么要为descripe执行before(:context)?理想情况下,它应该在spec中的上下文之前执行

nnsrf1az  于 2021-09-29  发布在  Java
关注(0)|答案(2)|浏览(227)

我想执行一个应该在规范中(:context)之前执行的代码。
我的规范文件:

describe "" do
   context 'test context' do
     it 'test' do
     end
   end
end

my spec helper.rb文件:

RSpec.configure do |config|
  config.before(:context) do |example|
    \\ some code which should be executed before context but getting executed during decribe
  end
end

是否有任何方法可以执行仅在之前(:context)上运行的代码

mu0hgdu0

mu0hgdu01#

您可以使用过滤器,如过滤器>将符号用作元数据中所示,例如:

RSpec.configure do |config|
  config.before(:context, :before_context) do |example|
    # ...
  end
end

只有 context / describe 指定过滤器将使用它的块:

describe "" do
  context 'test context', :before_context do
    it 'test' do
      # ...
    end
  end
end

注意 :before_context 只是一个例子,你可以使用任何符号。

mum43rcc

mum43rcc2#

contextdescribe 实际上是一样的(实际上它们都是 example_group 如本文所述:https://relishapp.com/rspec/rspec-core/v/3-9/docs/example-groups/aliasing)
正如你在这里的文档中看到的,没有 before(:describe) 提到:https://relishapp.com/rspec/rspec-core/v/3-9/docs/hooks/before-and-after-hooks
总之,你不可能做你想做的事。

相关问题