(我认为这个问题可以概括为对所有经过广泛ping通的API进行 stub ,但是我是根据我实际使用的代码提出这个问题的)
我们在 Controller 和 View (包括布局)中广泛使用Contentful Model。这意味着在我们访问(说)主页的任何功能测试中,我们的 Controller Action 都将包括以下内容:
class HomepageController < ApplicationController
def homepage
# ... other stuff
@homepage_content = Homepage.find ('contentful_entry_id')
end
end
...,其中Homepage是ContentfulModel::Base的子类,@ homepage_content在 View 中将对其进行各种调用(有时被链接)。在页脚中有一个相似的实例变量集,并被重复使用。
因此,对于功能测试,这是一个痛苦。我只想出两种选择:
或者
这两种方式(至少是我做这些方式的方式)都具有非常严重的缺点:
1)导致一堆测试kruft,每次我们在相关模型中添加或删除字段时都必须更新;
2)意味着我们会为每个功能测试生成一个vcr yaml文件-并且我们必须记住,每当我们更改测试元素以更改其发送的请求时,都要清除相关的yml文件
我是否缺少第三种选择?还是有一些明智的方法可以完成上述任一选择而又没有主要缺点?
最佳答案
我是contentful_model
的维护者。
我们使用VCR stub API调用,以便您可以使用真实数据进行测试并避免复杂的测试代码。
干杯
关于ruby-on-rails - 在功能规范中 stub Contentful Model实例的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121188/