ruby-on-rails – 与编写模拟测试相比,使用FakeWeb的缺点
发布时间:2020-12-16 19:02:32 所属栏目:百科 来源:网络整理
导读:我从不喜欢写嘲笑,不久之前有人建议使用FakeWeb.我立刻完全爱上了FakeWeb.但是,我不得不怀疑使用FakeWeb是否存在缺点.看起来嘲笑仍然更常见,所以我想知道我错过了使用FakeWeb的错误.是否存在某些您无法用Fakeweb覆盖的错误,或者是关于TDD或BDD流程的错误?
我从不喜欢写嘲笑,不久之前有人建议使用FakeWeb.我立刻完全爱上了FakeWeb.但是,我不得不怀疑使用FakeWeb是否存在缺点.看起来嘲笑仍然更常见,所以我想知道我错过了使用FakeWeb的错误.是否存在某些您无法用Fakeweb覆盖的错误,或者是关于TDD或BDD流程的错误?
解决方法
你应该看看WebMock
http://github.com/bblimke/webmock
模拟http请求的缺点是缺乏对远程API更改的保护.如果远程HTTP服务发生更改,并且您的代码将不再兼容,则您的测试不会告诉您相关信息.如果您自己模拟http客户端方法,则会遇到同样的问题. 像FakeWeb或WebMock这样的库的优点是,您可以专注于实现行为,而不必担心特定http客户端库的实现细节.即使您将库从例如Net :: HTTP更改为RestClient,仍应保留该行为,因此测试仍应传递.如果您自己模拟http客户端,则必须在更改实现时更改测试,即使行为没有更改.使用FakeWeb或Webmock也有助于TDD或BDD(首先测试).在担心特定http客户端的实现细节之前,您可以使用规范或测试指定http行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |