gpt4 book ai didi

ruby-on-rails - 在不实际访问数据库的情况下测试 Mongoid 作用域?

转载 作者:行者123 更新时间:2023-12-04 07:39:00 24 4
gpt4 key购买 nike

有没有一种聪明的方法可以在不影响数据库的情况下测试作用域?

我问是因为我正在处理多级嵌入式文档的范围,要在数据库中实际创建对象需要先创建一长串对象。这在性能方面似乎效率低下,而且编写测试单个范围真的很麻烦。

最佳答案

我不确定您的多级嵌入式文档的含义,但您可以断言范围是 Mongoid::Criteria,并进一步断言它是具有某些属性的条件。

RSpec 示例:

  expect(Charge.successful).to be_a Mongoid::Criteria
expect(Charge.successful).to eq Mongoid::Criteria.new(Charge).where(state: 'successful')

请注意,这不是测试行为,这是最佳实践。

更好的方法可能只是硬着头皮使用类似 FactoryGirl 的方法创建您的对象和测试行为。大概要对您的系统进行完全验收测试,您无论如何都需要这些对象。

如果您想避免“撞到数据库”,您可以使用 EmbeddedMongo .这可能会加快您的测试速度,并且意味着您的 CI 服务器上不需要 MongoDB。

关于ruby-on-rails - 在不实际访问数据库的情况下测试 Mongoid 作用域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20447440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com