水豚按钮JS响应ActionController错误

时间:2018-10-02 12:09:18

标签: ruby-on-rails testing ruby-on-rails-5 capybara

我正在为我的项目编写一些测试,并且遇到一些问题。在测试中,我只是填写了一些字段,我想提交此表格。它可以在浏览器中工作,但是在测试中,我得到了CREATE OR REPLACE FUNCTION theScript(TEXT) RETURNS VOID AS ' DECLARE _table_name ALIAS FOR $1; _sub_id integer; _prop_id integer; _ent_id integer; _ent_sub_id integer; BEGIN FOR _ent_id IN EXECUTE ''SELECT id FROM schema.'' || _table_name LOOP EXECUTE '' SELECT sub_id FROM schema.'' || _table_name || '' WHERE id = '' || _ent_id INTO _ent_sub_id; IF _ent_sub_id IS NULL THEN EXECUTE '' SELECT sub_property_id FROM schema.'' || _table_name || ''_data WHERE '' || _table_name || ''_id = '' || _ent_id || '' LIMIT 1'' INTO _prop_id; SELECT subdivision_id from bms.subdivision_property where id = _prop_id INTO _sub_id; EXECUTE '' UPDATE schema.'' || _table_name || '' SET sub_id = '' || (_sub_id) || '' WHERE id = '' || _ent_id; RAISE NOTICE ''UPDATED FIELD ID: %'', _ent_id; END IF; END LOOP; END;' LANGUAGE plpgsql; SELECT theScript('terminal'); 。这是错误:

  

ActionController :: UnknownFormat:CompaniesController#update缺少此请求格式和变体的模板。

     

request.formats:[“ text / html”]
  request.variant:[]

小测试:

formatError

我没有添加任何期望,因为它每次都会失败。

编辑:

是的,响应是js!它应该打开一个模式。

1 个答案:

答案 0 :(得分:1)

要进行JS测试,您需要在场景中指定js: true,并应配置一个Web驱动程序(例如selenium或poltergeist)以使用capybara执行js。

您的测试:

scenario 'update company with valid params', js: true do
  visit company_account_information_path

  fill_in 'company_name', with: "Mustername für Firma"
  fill_in 'company_owner_name', with: "Mustermann"

  click_button "Speichern"
end

阅读此文档以配置支持js Capybara drivers

的网络驱动程序