1

测试是否未发出 HTTP 请求的最简单方法是什么?

比如说,如果用户不提供用户名,我希望我的应用程序不要向远程服务器发送 API 调用。

我应该在我的 Rails 应用程序中编写什么 RSpec 测试来测试从未发出过 HTTP 请求?fakeweb 能以某种方式帮助我吗?

4

3 回答 3

3

您可能应该尝试WebMock
它允许您检查某些 url 被请求的次数。

assert_requested :post, "http://www.example.com", :times => 0
于 2013-03-18T22:27:00.623 回答
1

假设我们有以下代码向 GitHub 的 API 发出条件请求。

if condition
  user = Octokit.user 'dideler'
end

使用 RSpec,您可以测试对象是否没有收到方法调用的消息。

expect(Octokit).to_not receive(:user)

如果通过,则表示未提出请求。

于 2014-11-14T15:49:22.663 回答
0

我想我明白你在问什么。您只想错误检查以查看请求是否已发送或有效。

如果用户名!= 空白 --> api 调用,否则返回“您没有输入用户名”。

或者您可以使用 api 的返回数据来检查请求是否有效。

我希望这有帮助。

于 2013-03-18T15:18:04.590 回答