如何使用RSpec/Capybara/Ruby测试AJAX事务的Javascript回调函数?

如何使用RSpec/Capybara/Ruby测试AJAX事务的Javascript回调函数?,javascript,ruby-on-rails,paypal,rspec,capybara,Javascript,Ruby On Rails,Paypal,Rspec,Capybara,我正在使用RSpec/Capybara和chrome/firefox进行测试 我正在使用PayPal的iframe/Javascript购买流 当用户在弹出的浏览器窗口中完成购买交易时,该窗口关闭,并调用按钮/注册函数中的回调函数(很抱歉,描述不好-我不是Javascript专家) 以下是PayPal功能的外观: 功能贝宝按钮(计划id、容器id){ 贝宝,按钮({ createSubscription:函数(数据、操作){ return actions.subscription.create(

我正在使用RSpec/Capybara和chrome/firefox进行测试

我正在使用PayPal的iframe/Javascript购买流

当用户在弹出的浏览器窗口中完成购买交易时,该窗口关闭,并调用按钮/注册函数中的回调函数(很抱歉,描述不好-我不是Javascript专家)

以下是PayPal功能的外观:

功能贝宝按钮(计划id、容器id){
贝宝,按钮({
createSubscription:函数(数据、操作){
return actions.subscription.create({
“计划id”:计划id
});
},
onCancel:函数(数据){
控制台日志(“已取消”);
},
onError:函数(err){
console.log(“错误”)
},
onApprove:功能(数据、操作){
东西
}
}).渲染(容器id);
}
在上面的代码中,
stuff
正在对DOM进行一系列修改,包括提交表单。我不认为我可以在表单提交之前截取Javascript,所以,实际上,我只需要了解我可以在RSpec测试中做些什么来触发这个onApprove函数

onApprove记录在以下位置:


我这样做完全错了吗?我是否应该做一些完全不同的事情来测试这种级别的页面内Javascript?

无法回答关于RSpec/Capybara的问题,但我认为最好使用fetch API,而不是表单post,如以下示例所示: