首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >POSTing表单到外部URL失败,测试时出现路由错误

POSTing表单到外部URL失败,测试时出现路由错误
EN

Stack Overflow用户
提问于 2012-04-12 15:34:49
回答 1查看 416关注 0票数 1

我有一个Rails应用程序的集成测试,它会发布到Braintree的透明重定向API。基本上,测试使用有效数据填充表单,并简单地期望返回正确的响应。我并不是要测试Braintree的每一个验证--我只想要一个测试来确保我的表单在大多数情况下都能工作。

但是,我的表单抛出了这个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1) Braintree CreditCard integration creates a credit card on Braintree and locally
Failure/Error: click_on 'Add card'
ActionController::RoutingError:
   No route matches [POST] "/merchants/XXX/transparent_redirect_requests"

有问题的form_for帮助器如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
=form_for :credit_card, :params => @result && @result.params[:credit_card],
:errors => @result && @result.errors.for(:credit_card),
:builder => ApplicationHelper::BraintreeFormBuilder,
:url => Braintree::TransparentRedirect.url,
:html => {:autocomplete => "off"} do |f|

相关的行似乎是Braintree::TransparentRedirect.url -也许在测试环境中,这会被截断/丢失相关的主机信息?不是这样的!输出用于测试的page.html将显示以下内容:

<form accept-charset="UTF-8" action="https://sandbox.braintreegateway.com:443/merchants/XXX/transparent_redirect_requests" autocomplete="off" method="post">

那么为什么测试看起来像是试图击中/merchants..。而不是像表单的操作属性明确声明的那样,将数据发送到sandbox.braintreegateway.com?

此外,手动复制测试过程(使用有效数据填写表单,点击提交)在开发和生产中都有效。

EN

回答 1

Stack Overflow用户

发布于 2012-04-12 15:51:20

Rails集成测试将所有请求发送到rails应用程序- URL的主机部分被忽略。

只要你使用一个合适的水豚驱动程序,你就可以通过rspec请求规范做到这一点-默认的Rack::Test对于主机具有相同的行为,但是像Capybara-webkit或者selenium驱动程序之一可能是不同的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10126905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文