文件名称:n_plus_one_control:RSpec和Minitest匹配器,以防止N + 1查询问题
文件大小:31KB
文件格式:ZIP
更新时间:2024-02-22 00:15:17
ruby testing rspec minitest hacktoberfest
N + 1控制 RSpec和Minitest匹配器可防止N + 1查询问题。 为什么还有另一个断言来声明数据库查询呢? 与其他库(例如 , 等)不同,使用n_plus_one_control不必指定确切的期望值来控制代码行为(例如, expect { subject }.to query(2).times ) 。 很难维持这样的期望,因为存在很大的机会添加更多与被测系统无关的查询。 NPlusOneControl的工作原理有所不同。 它使用不同的比例因子多次评估所考虑的代码,以确保数据库查询的数量符合预期(即O(1)而不是O(N))。 因此,它用于性能测试,而不用于功能测试。 为什么不只使用 ? 当然,可以在测试中使用Bullet(请参阅更多),但这不是灵丹妙药:既可以有误报,也可以有真正的消极。 我发现自己无法通过测试来验证另一个N + 1问题后,这个宝石诞生了。 安装 将此行添加到您的应用程序的Gemfile中: group :test do gem "n_plus_one_control" end 然后执行: $ bundle 用法 规范 首先,将NPl
【文件预览】:
n_plus_one_control-master
----gemfiles()
--------rails6.gemfile(106B)
--------railsmaster.gemfile(145B)
--------rubocop.gemfile(95B)
--------rails5.gemfile(105B)
----.github()
--------PULL_REQUEST_TEMPLATE.md(500B)
--------ISSUE_TEMPLATE()
--------workflows()
----LICENSE.txt(1KB)
----.gem_release.yml(64B)
----lib()
--------n_plus_one_control()
--------n_plus_one_control.rb(4KB)
----Gemfile(368B)
----spec()
--------n_plus_one_control_spec.rb(174B)
--------spec_helper.rb(833B)
--------n_plus_one_control()
--------support()
----Rakefile(499B)
----RELEASING.md(1KB)
----README.md(10KB)
----.rubocop.yml(550B)
----.rubocop-md.yml(181B)
----.rspec(13B)
----tests()
--------test_helper.rb(803B)
--------minitest_test.rb(3KB)
----.gitignore(425B)
----n_plus_one_control.gemspec(2KB)
----bin()
--------console(343B)
--------setup(131B)
----CHANGELOG.md(1KB)
----.mdlrc(25B)