1
36
使用fakeweb消除互联网响应。 对于google的例子,首先访问网站并保存所需页面的HTML。在这种情况下,假设您通过浏览器或curl保存了www.google.com。将fakeweb gem添加到test.rb文件中 那么你的密码是
当你做你的标准机械化呼叫
fakeweb将返回您保存的带有内容类型标题集的页面,以一种机械化认为它可以成功访问Internet的方式。确保设置了Content_-Type头,因为否则Mechanicy将响应视为Mechanicy::File而不是Mechanicy::Page。您可以通过在未插上网络连接的情况下在计算机上运行测试来测试它是否完全正常工作。 另外,我是在被问到这个问题6个月后才回答这个问题的,因为这是谷歌的最高结果,但还没有回答。我自己花了30分钟来解决这个问题,我想我会分享解决方案。 |
2
2
如果你在写单元测试,那么你看的是错误的部分,你不需要模拟google.com,但是你应该模拟/存根机械化对象,即创建机械化对象,用参数对对象调用get方法。 http://www.google.com .是的,您确实需要通过访问页面来测试您正在对结果执行的操作,您可以通过存根响应轻松地执行该页面,然后执行所有测试。例如,如果您正在使用摩卡,那么
我不认为你真的需要测试你的请求是否进入google.com,因为已经在mechanicgem中测试过了。 另一个注意事项是,如果您正在进行集成/黄瓜测试,那么您可以使用Sinatra来伪造站点。Sinatra使编写单页脚本和将该脚本作为网站运行变得非常容易。 编辑: 如果您不使用Mocha,那么您需要安装它并在测试中要求它
在你的测试中
|
3
1
如果您正在编写功能测试,并且服务器不需要任何花哨的东西,那么您可以编写一个只为测试运行的小HTTP服务器;测试代码将测试中的代码配置为与本地主机上的小HTTP服务器联系:。 我推荐你 WEBrick . 安装一个HTTP服务器是一个快照。 |
Stilian · 存储库设置中没有Github页面部分 2 年前 |
Kellen · 查看$卷展栏功能列表 2 年前 |
Akshit Thakur Ak · 我怎样才能把铁轨停下来? 2 年前 |
johncssjs · 将数组转换为每个元素的嵌套哈希 2 年前 |
solidsnake99 · Rails db:如何绕过验证 2 年前 |