在我的模型中,我有一个具有默认值的属性 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
答案 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') )
);