ruby-on-rails – Capybara Rspec测试可能对AJAX失败 – 测试con
发布时间:2020-12-17 02:40:58 所属栏目:百科 来源:网络整理
导读:我试图测试一个可信的textarea是否在我的代码中工作,但我得到一个我似乎无法解决的错误.问题是发送到控制器的参数不是我对 AJAX的期望.这是我的代码: rspec的 describe 'editing contenteditables',js: true do before do page.find('#artistdescription').
我试图测试一个可信的textarea是否在我的代码中工作,但我得到一个我似乎无法解决的错误.问题是发送到控制器的参数不是我对
AJAX的期望.这是我的代码:
rspec的 describe 'editing contenteditables',js: true do before do page.find('#artistdescription').set('Pizza') page.find('#similarArtists').click #in order to blur out of contenteditable end it {should have_content('Pizza')} end 视图 <% if @is_current_artist %> <% description_text = (@artist.description.blank? && @is_current_artist) ? "test" : @artist.description %> <textarea contenteditable='true' id='artistdescription'> <%= description_text %> </textarea> <% else %> ... AJAX $(document).on('blur','#artistdescription',-> $.ajax( url: "/artists/" + $('#idnumber').html() type: "PATCH" datatype: "JSON" data: { artist: { description: $('#artistdescription').val().replace(/(<([^>]+)>)/ig,"") } session_code: getCookie('session_code'); } ) ) 调节器 def update @artist = Artist.find(params[:id]) p 'Hello from update' return if !active_session && !is_current_artist p 'Logged in!' pp artist_params @artist.update_attributes(artist_params) #error here def artist_params #Add more contenteditable stuff here p '=====================TASTY TACOS!' pp params params.require(:artist).permit(:artist_name,:route_name,:password,:email,:background_image,:description,:hometown,:genre) #error here end 这是我的错误信息 "Hello from update" "Logged in!" "=====================TASTY TACOS!" {"action"=>"update","controller"=>"artists","id"=>"1"} F Failures: 1) Current Artist editing contenteditables should text "Pizza" Failure/Error: Unable to find matching line from backtrace ActionController::ParameterMissing: param is missing or the value is empty: artist # ./app/controllers/artists_controller.rb:151:in `artist_params' # ./app/controllers/artists_controller.rb:48:in `update' Finished in 15.41 seconds (files took 16.02 seconds to load) 1 example,1 failure Failed examples: rspec ./spec/features/editting_artist_spec.rb:32 # Current Artist editting contenteditables should text "Pizza" 谢谢您的帮助. 解决方法
事实证明这是QtWebkit本身的一个问题,正如上面提到的Finch:
https://github.com/thoughtbot/capybara-webkit/issues/553 有一种解决方法,发送POST请求并手动重定向到更新控制器方法(详细信息): (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |