问题标签 [webmock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1210 浏览

ruby-on-rails - RSpec before suite not being run

I'm trying to stub any external API calls in my test suite, but the before(:suite) is never executed. Webmock always reports that I need to stub the maps.googleapis.com even though no tests have been run yet (no green dots, no red Fs).

spec_helper.rb:

The geocoder gem ends up trying to save the lat/lon from googleapis.com and an error is raised by Webmock saying that the URL is unregistered.

EDIT: Error snippet:

Again, I'll stress that this has to do with the fact that the code in the config.before(:each) block is never run. Why? Because if it was, I could "raise 'WTF'" and 'WTF' should appear in the console output instead of the error you see above. I only see 'WTF' when I "un-bundle" the Webmock gem.

0 投票
2 回答
23595 浏览

ruby-on-rails - 带有任何正文和标头的 Webmock 存根请求

如何使用 Webmock 对任何正文和标头的请求进行存根?我尝试使用正则表达式

在 rspec 但它不起作用,它有

0 投票
3 回答
1299 浏览

ruby-on-rails - 为什么我的 rspec 测试自行通过,但在我运行特定测试时失败?

当我运行 rspec 运行所有测试时,它们都通过了,但是当我给出特定的文件名时,它会失败。

我已经对它进行了嘲笑和存根,为什么它会失败?我唯一能看到的是现有存根是“/test/”,请求是“/default/”。那是怎么改变的?

好的,我在另一个规范上再次遇到了这个问题。这是规范: https ://gist.github.com/starrychloe/1d79d9925f9b79ae5c01

我确实找到了这个 solr/solr.xml

就像 rspec 在生产环境中运行一样,即使我明确给出了环境

我认为这是一个 rspec 问题。rspec -v:版本 2.14.7。

0 投票
0 回答
477 浏览

ruby-on-rails - 如何从其他 gem 发出 webmock 块/存根外部请求?

我正在尝试使用 webmocks 来测试与外部服务交互的应用程序的一部分。然而,所有的 API 调用实际上都发生在另一个 gem 中。因此,即使我启用了 webmock,它也会继续发出请求。

这被正确阻止并需要模拟:

但是包含针对 gem 的 API 请求的测试,应该调用外部服务不是。

知道如何进行该测试也需要模拟吗?

0 投票
0 回答
520 浏览

ruby-on-rails - 在模块规范上编写 webmock 存根

我的问题是我正在创建一个包装器来处理与外部服务器(GeoNetwork)的连接并处理它的响应。

虽然我的搜索控制器中有我的请求,但它工作正常。然后我尝试为包装器遵循这个解决方案:

http://code.tutsplus.com/articles/writing-an-api-wrapper-in-ruby-with-tdd--net-23875

但是现在,我在 webmock 上有一个错误,我不知道为什么。

../lib/wrapper/api.rb


../spec/lib/api_spec.rb


../spec/spec_helper.rb


我得到的错误是:


0 投票
1 回答
830 浏览

ruby - 带有 Webmock 的 VCR 错误地存根 Typhoeus(nil:NilClass 的未定义方法 `>=')

我想要什么:每次运行测试时调用外部 API 以返回相同的东西我得到了什么:第一次 VCR 保存它,第二次 Typhoeus 返回错误

发生的情况是我运行一次测试,它发出实际请求(当我创建组织和用户时发生),然后当我再次运行它时,它无法正确解析请求。

第一次运行:

以下所有运行,直到我删除磁带:

这可以追溯到这些行(来自我使用的私人宝石)

版本:

  • 录像机 (2.9.0)
  • 网络模型 (1.18.9)
  • 台风 (0.6.8)

设置:

测试:

0 投票
0 回答
858 浏览

ruby-on-rails - 如何在 WebMock 的测试中从请求的 URL 中提取参数?

我正在尝试为调用外部 API 的模型编写测试。是否可以使用 WebMock 从 URL 中提取参数?

例如,我想匹配任何这样的 URL:

http://test.com?id=# {number}&id2=#{number2}

#{number} 和 #{number2} 是正则表达式。到这里为止,这可以使用 WebMock,如此处所述: https ://github.com/bblimke/webmock#matching-uris-using-regular-expressions

我的问题是我需要知道请求中的“number”和“number2”是什么,才能在测试中使用它们。有没有办法做到这一点?

如果有 WebMock 的替代品,请随时提出建议。

编辑:一些额外的细节:

假设我有一个测试可以测试一个调用外部 API 的函数,我知道它将使用 URL 中的一些参数调用它,但我不知道它将采用的值,所以我这样做:

0 投票
1 回答
3769 浏览

ruby - 为什么在使用 WebMock 模拟 Stripe 时会出现“没有将哈希隐式转换为字符串”

我正在尝试像这样模拟 Stripe:

no implicit conversion of Hash into String我打电话时遇到错误:

body这是因为 in中的哈希to_return,但我不知道如何避免该错误。

如果我添加.to_s到哈希中,我会得到:

来自 API 的无效响应对象:"{\"id\"=>\"tok_14CgP22eZvKYlo2CkgJ6ymLE\", \"livemode\"=>false, \"created\"=>1404517660, \"used\"=>false, \" object\"=>\"token\", \"type\"=>\"card\", \"card\"=>{\"id\"=>\"card_14CgP22eZvKYlo2CcdUNvicW\", \"object\" =>\"card\", \"last4\"=>\"4242\", \"brand\"=>\"Visa\", \"funding\"=>\"credit\", \"exp_month \"=>12, \"exp_year\"=>2018, \"fingerprint\"=>\"Xt5EWLLDS7FJjR1c\", \"country\"=>\"US\"}}"(HTTP 响应代码为 200)

如果我.to_json在末尾添加 a ,则Stripe::Token通过,stack error too deep但当我尝试以token任何方式使用结果时出现错误。

你有什么建议吗?

0 投票
2 回答
519 浏览

ruby-on-rails-3 - 带有 rspec 的 Rails 测试中的 Stub XMLRPC::Client 调用

我正在尝试在 Rails 中的 rspec 测试中存根 XMLRPC::Client.call。

这是我的方法:

这是我的测试:

我收到此错误:

如果我在存根中使用空响应体,我会得到:

This Using webmock to mock XMLRPC client in rspec-rails对我也不起作用。

任何帮助深表感谢。谢谢!

0 投票
2 回答
2320 浏览

ruby-on-rails - 使用 rspec 测试 oauth2 get_token

我正在为 oauth2 身份验证的 get_token 部分创建控制器规范。此时用户已授权我的应用程序,我需要生成并保存令牌和其他信息。Rspec 失败并出现一个有点神秘的错误。

这是控制器代码。Rspec 说它在 get_token 上失败。

这是测试。webmock 应该拦截 get_token。它是 rspec 建议的自动生成的 webmock,我用适当的请求和响应正文填充了正文。

这个过程已经在实践中起作用,所以至少控制器代码不应该受到责备。我究竟做错了什么?