ruby-on-rails – 如何阻止VCR覆盖磁带中的erb
我们最近开始在我们的黄瓜测试中使用
VCR来存根请求.我们使用黄瓜表来描述不同类型的请求,并将它们作为变量存储在小黄瓜中.我们的磁带文件都经过重新设计以包含erb,因此我们可以替换我们要测试的请求的值.
问题在于,只要有新请求,VCR就会记录新请求,并且还会从磁带中覆盖(删除)所有erb,将其替换为针对该示例插入的请求.每当我们运行值已更改的请求(例如,我们从我们正在讨论的API接收的时间戳的值)时,所有erb都需要被复制回盒式磁带文件.这是令人沮丧的,因为测试一直在运行. 有谁知道为什么VCR会在录制新的回复时剥掉erb?任何解决方法的想法?有没有办法在插入模板之前保存模板? 解决方法
使用新录制的磁带自动将手动更改合并到磁带上是一个难题,在我看来,最好留给专门设计用于处理文本文档历史并管理合并它们的工具(即您的源控制系统) . ERB使其变得更加困难:虽然您可能只是使用ERB来插入变量,但可以使用任何有效的ruby. ERB中可能存在循环,条件等. VCR无法自动合并这些内容.
一对建议: >以更精细的方式使用您的磁带,这样它们就不会经常被覆盖.我倾向于为每个HTTP请求或HTTP请求的逻辑组使用一个casette. 如果这些东西不能满足您的需求,我当然愿意接受如何改进VCR的想法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |