2013-03-18 64 views
0

测试HTTP请求是否未被测试的最简单方法是什么?测试HTTP请求不是在Rails中进行的

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

我应该在Rails应用程序中编写什么RSpec测试来测试HTTP请求是否永远不会生成? fakeweb能以某种方式帮助我吗?

回答

2

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

assert_requested :post, "http://www.example.com", :times => 0 
0

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

如果用户名!=空 - > api调用else返回'您没有输入用户名'。

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

我希望这会有所帮助。

+0

对不起,我需要让我的问题更清楚。我应该在Rails应用程序中编写什么样的RSpec测试来测试HTTP请求是否永远不会生成?我也更新了我的问题。 – 2013-03-18 15:36:22

1

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

if condition 
    user = Octokit.user 'dideler' 
end 

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

expect(Octokit).to_not receive(:user) 

如果通过,则表示请求未被执行。