gpt4 book ai didi

rspec - 组合多个 let 语句

转载 作者:行者123 更新时间:2023-12-04 23:51:04 25 4
gpt4 key购买 nike

如何定义方法 create_all这允许我而不是写作

describe "some spec" do
let(:a) { create :a }
let(:b) { create :b, :a => a }
...

来写
describe "some spec" do
create_all
...

更具体地说: 哪里我是否必须定义它才能在 describe 中使用它?语境?

它应该适用于不同的规范文件。

最佳答案

RSpec 中有一个机制可以做到这一点,它是 shared_context .它简单、优雅,并且不需要像其他一些选项一样需要您跳过箍。

因此,在您的示例中,您将设置一个共享上下文:

# spec/support/create_all.rb

shared_context "create all" do
let(:a) { create :a }
let(:b) { create :b, :a => a }
...
end

然后在你的规范中
# some_spec.rb

describe "some spec" do
include_context "create all"

it "tests something" do
...
end
end

一些进一步的阅读:
  • https://www.relishapp.com/rspec/rspec-core/docs/example-groups/shared-context
  • http://testdrivenwebsites.com/2011/08/17/different-ways-of-code-reuse-in-rspec/
  • 关于rspec - 组合多个 let 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21904146/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com