干掉factory_girl测试设置

时间:2014-05-14 14:37:13

标签: ruby-on-rails rspec factory-bot

我有以下测试设置,我现在发现它需要在多个测试套件中使用。

  before do
    @guest, @host = FactoryGirl.create(:user), FactoryGirl.create(:user)

    @booking = FactoryGirl.create(
      :booking,
      user: @guest,
      listing: FactoryGirl.create(:listing, user: @host),
      state: "unaccepted_by_guest_or_host"
    )   
  end

在多个文件中使用相同的精确代码显然并不理想。如果可能的话,我认为我更喜欢的是:

  before do
    @guest, @host = FactoryGirl.create(:user), FactoryGirl.create(:user)

    @booking = FactoryGirl.create(
      :complete_booking,
      guest: @guest,
      host: @host,
    )   
  end

这当然仍然有点重复,但我不会觉得那么糟糕。

有可能实现我想要实现的目标吗?有更好的可能吗?

1 个答案:

答案 0 :(得分:0)

您始终可以定义一个给定@guest@host的测试帮助程序,它会设置您在第一个代码段中列出的内容。同样的好处,没有重复。