这个模型规范如何在话语测试套件中工作

时间:2013-04-22 18:06:49

标签: rspec fabrication-gem

我在这里查看话语源代码https://github.com/discourse/discourse/blob/master/spec/models/invite_spec.rb并查看如下代码:

要求'spec_helper'

describe Invite do

  it { should belong_to :user }
  it { should have_many :topic_invites }
  it { should belong_to :invited_by }
  it { should have_many :topics }
  it { should validate_presence_of :email }
  it { should validate_presence_of :invited_by_id }

我不熟悉他们获得it的价值的地方。看起来他们在这里有一个隐含的对象,但是我没有看到他们在哪里创建它 - 这应该在before hook中吗?他们使用的是Fabricator而不是FactoryGirl - 有人可以告诉我这些是如何传递的吗?

1 个答案:

答案 0 :(得分:1)

Invite的隐含主题。这是RSpec功能:

  

最外面的示例组块的第一个参数是   每个例子都可以作为一个隐含的主题   那个例子。

请参阅https://www.relishapp.com/rspec/rspec-core/v/2-0/docs/subject/implicit-subject