我对测试非常陌生,所以我不确定我应该在这里调试什么。
也就是说,我有两种不同的用户类型:作者和读者,它们是用户的子类。
他们都可以在我的应用程序中正常注册,并且读者的测试工作没有任何问题。
Authors 的注册表单包括一个 Stripe 支付表单 - 并在提交表单之前远程调用 Stripe 的 API。
这是测试的样子:
require 'spec_helper'
feature 'Author sign up' do
scenario 'author can see signup form' do
visit root_path
expect(page).to have_css 'form#new_author'
end
scenario 'user signs up and is logged in' do
visit root_path
fill_in 'author[email]', :with => 'author@example.com'
fill_in 'author[password]', :with => '123456'
fill_in 'author[password_confirmation]', :with => '123456'
fill_in 'author[name]', :with => 'joe shmoe'
fill_in 'author[zipcode]', :with => '02021'
fill_in 'card_number', :with => '4242424242424242'
fill_in 'card_code', :with => '123'
select "1 - January", :from => 'card_month'
select "2014", :from => 'card_year'
find('.author_signup_button').click
expect(page).to have_css '.author_menu'
end
end
此测试与 Reader 测试之间的唯一区别是信用卡表格。
处理此帐户创建的控制器如下所示:
def create
@author = Author.new(params[:author])
if @author.save_with_payment
sign_in @author, :event => :authentication
redirect_to root_path, :notice => "Thanks for signing up!"
else
render :nothing => true
end
end
如果我在这里没有else,测试会很快失败,说它缺少模板。这意味着它没有通过“save_with_payment”方法,该方法支持表单永远不会命中条纹的想法。
错误只是说:
**Failure/Error: expect(page).to have_css '.author_menu'
expected css ".author_menu' to return something**
这在我与条带集成之前有效 - 所以我确信它与 ajax 调用有关。
我应该做些什么来支持ajax?