gpt4 book ai didi

ruby-on-rails - RSpec:测试范围预加载

转载 作者:行者123 更新时间:2023-11-28 20:00:13 24 4
gpt4 key购买 nike

我的一个模型的默认范围设置为使用 includes() 自动加载相关模型。如何使用 RSpec 测试此功能?我试过运行:

Model.includes(:relation).to_sql

希望我能检测到 SQL 中的签名,但它只返回了这个:

SELECT "models".* FROM "models"

没有提及关系,显然是通过第二个查询完成的。您会如何推荐对此进行测试?

最佳答案

我可能会沿着对方法进行 stub 和设定期望的路线走下去。

该模式将是为您的模型添加一个测试替身,并设置它接收 .includes 方法调用的期望

测试由 Rails 创建的实际 SQL 调用似乎更多地是关于测试 Rails 而不是您的应用程序,并将其与实现紧密耦合。测试该方法是否被调用是一个很好的中间立场,因为如果它被调用,Rails 将做正确的事情。

这里有更多信息https://www.relishapp.com/rspec/rspec-mocks/v/2-14/docs/method-stubs以便更好地理解该过程。

关于ruby-on-rails - RSpec:测试范围预加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20318475/

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