小编Sey*_*bol的帖子

如何使用 Sequelize 默认禁用模型验证?

我正在尝试默认禁用带有 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 吗?谢谢。

javascript validation node.js sequelize.js

5
推荐指数
0
解决办法
864
查看次数

Ruby、Rspec 和收益存根

假设我在 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)

ruby unit-testing rspec yield ruby-on-rails

3
推荐指数
2
解决办法
8865
查看次数