如何取消FactoryBot特性的属性?

时间:2019-07-18 08:15:24

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

在我的模型中,我有一个具有默认值的属性 foo

我想编写一个与默认值 foo 相关的测试,但是我的FactoryBot将其设置为nil(并覆盖了默认值)。

如果我从工厂漫游器中删除 foo ,它将破坏其他测试。因此,我想使用类似 trait 的方法来创建 foo 不是纯净的情况,但我找不到任何方法取消设置属性。

是否可以通过某些方法在FactoryBot中取消设置属性?

FactoryBot.define do
  factory :my_model do
    foo { 'abc' }
    bar { 'abc' }

    trait(:foo_not_set) do
      # magic to unset foo
    end
  end
end

1 个答案:

答案 0 :(得分:3)

您可以使用瞬态块来处理虚拟属性:

const paths = ["/",
"/profile",
"/_internal/wBD17Ai4P3l04yNcyAkrn/pages/index.js",
"/_internal/wBD17Ai4P3l04yNcyAkrn/pages/_app.js",
"/static/app.css",
"/_internal/static/wBD17Ai4P3l04yNcyAkrn/pages/page.js"]

console.log(

paths.map(res=> res.startsWith('/static') || res.startsWith('/_internal') )

);