Are*_*epo 1 ruby-on-rails stubbing contentful
(我认为这个问题可以概括为任何广泛使用的API,但我根据我实际使用的代码提出问题)
我们在控制器和视图中广泛使用Contentful Model,包括我们的布局.这意味着在我们访问(比如说)主页的任何功能测试中,我们的控制器操作将包括以下内容:
class HomepageController < ApplicationController
def homepage
# ... other stuff
@homepage_content = Homepage.find ('contentful_entry_id')
end
end
Run Code Online (Sandbox Code Playgroud)
...其中Homepage是ContentfulModel :: Base的子类,而@homepage_content将在视图中对其进行各种调用(有时会链接).在页脚中有一个类似的实例变量集并重复使用.
因此,对于功能测试,这是一个痛苦.我只想出两个选择:
要么
这两个(至少我正在做的方式)都有相当不好的缺点:
1)导致一堆测试kruft,每次我们添加或删除相关模型中的字段时都必须更新;
2)意味着我们为每个功能测试生成一个vcr yaml文件 - 每当我们更改测试的一个元素时我们必须记住清除相关的yml文件,这会改变它发送的请求
我错过了第三种选择吗?或者是否有一些明智的方法来做上述任何一种选择而不会遇到主要缺点?