我正在尝试默认禁用带有 Sequelize 的模型的验证。目前,我总是使用以下方法创建/更新我的对象:
Model.create({attrs}, {validate: false})
Run Code Online (Sandbox Code Playgroud)
我在模型文件中尝试过:
sequelize.define('Model', {attrs}, {validate: false})
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用。
我可以在模型定义中的某处将 validate 设置为 false 以避免在每个创建/更新函数中写入 validate: false 吗?谢谢。
假设我在 Ruby 中有一个这样的类:
class Test
def execute
count = 0
40.times do
search_for_names(count) do |name, last_name|
yield name, last_name
end
count += 1
end
end
def search_for_names(count)
friend = get_friend_name(count)
yield friend.name, friend.last_name
end
end
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何对 search_for_names 方法进行存根处理,以在 Rspec 测试中获取 40 个不同的名称?(我安装了Faker)。我试过:
let(:friends) do
described_class.new
end
allow(friends).to receive(:search_for_names).and_yield(
Faker::Name.name,
Faker::Name.last_name
)
it 'finds multiple friends' do
friends.execute do |name, last_name|
puts name
expect(name).not_to be_empty
expect(last_name).not_to be_empty
end
end
Run Code Online (Sandbox Code Playgroud)
但它总是打印相同的名称 x40。
和... :
allow(friends).to receive(:search_for_names).and_yield(
Faker::Name.name,
Faker::Name.last_name
).and_yield(
Faker::Name.name,
Faker::Name.last_name
) …Run Code Online (Sandbox Code Playgroud) javascript ×1
node.js ×1
rspec ×1
ruby ×1
sequelize.js ×1
unit-testing ×1
validation ×1
yield ×1