ruby-on-rails – 弹性搜索轮胎:模拟ES的好策略
发布时间:2020-12-16 22:48:04 所属栏目:百科 来源:网络整理
导读:我在我网站的主页上使用ElasticSearch.在我的验收测试中,当用户登录时,他被重定向到主页. 但是在测试中使用ES是非常昂贵的(需要创建和删除索引),所以我不想在每次用户通过主页时都这样做. 只有当测试有一些元数据时,我才想做实际的ES搜索: config.before(:e
我在我网站的主页上使用ElasticSearch.在我的验收测试中,当用户登录时,他被重定向到主页.
但是在测试中使用ES是非常昂贵的(需要创建和删除索引),所以我不想在每次用户通过主页时都这样做. 只有当测试有一些元数据时,我才想做实际的ES搜索: config.before(:each) do if example.metadata[:elastic] Model.create_elasticsearch_index end end scenario "Results should be ordered by distance",:elastic do # tests... end 所以我需要“嘲笑”搜索,而不是使用ES,当测试没有:弹性元数据. 什么是实现这个的好方法? 解决方法
我可能会使用
FakeWeb来选择性地启用和禁用实时HTTP呼叫.
模拟对ES的电话: FakeWeb.allow_net_connect = false FakeWeb.register_uri(:any,%r|Ahttp://localhost:9200|,:body => "{}") 允许呼叫ES: FakeWeb.clean_registry FakeWeb.allow_net_connect = true 允许和禁止网络连接在这里并不是严格要求的,因为FakeWeb的模拟可以优先于实际的调用,但是我发现当有些事情发生了未锁定的HTTP调用时,我们发现它有助于在测试中抛出异常. 您可以扩展此功能以使用测试元数据来根据需要启用或禁用mock. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 是否可以在Ruby中的每一行之后运行代码?
- 答疑:能在 setter 方法中调用父类么?
- 正则表达式基础应用(替换replaceAll(regex,str))
- c – 当它的shared_ptr被破坏时,weak_ptr会发生什么?
- (翻译)React.createClass对比extends React.Component
- c# – 在项目的所有模板中设置Sitecore字段共享
- swift – 为什么RangeReplaceableCollection需要一个空的初
- 如何使用“distanceTo”,“advancedBy”来处理Xcode7 beta6
- c# – 将常规属性转换为自动实现的属性
- ajax中的get和post说明