Exi*_*iRe 6 ruby-on-rails capybara phantomjs poltergeist reactjs
我们Reactjs在Rails 4.1应用程序中开始了集成过程.问题是现在有很多功能被破坏了.
这是测试的堆栈:
例如,有黄瓜功能:
@javascript @services
Feature: Manage Service
Scenario Outline: Publish and archieve
Given the individual user
When I visit services page
And I click on I18n translation for key "views.labels.add"
And I fill service's fields and choose price as "<price>"
And I click on I18n translation for key "<submit_btn>"
Then I should see I18n translation for key "<message>"
And Created service should have 1 tag
Examples:
| submit_btn | price | message |
| views.labels.publish | fixed | views.messages.notices.add.created |
| views.labels.publish | negotiated | views.messages.notices.add.created |
Run Code Online (Sandbox Code Playgroud)
当我运行此测试时,我看到此错误:
One or more errors were raised in the Javascript code on the page. If you don't care about these errors, you can ignore them by setting js_errors: false in your Poltergeist configuration (see documentation for details).
TypeError: 'undefined' is not a function (evaluating 'RegExp.prototype.test.bind(
/^(data|aria)-[a-z_][a-z\d_.\-]*$/
)')
TypeError: 'undefined' is not a function (evaluating 'RegExp.prototype.test.bind(
/^(data|aria)-[a-z_][a-z\d_.\-]*$/
)')
at http://127.0.0.1:53686/assets/application.js:32342
at http://127.0.0.1:53686/assets/application.js:28807 in s
at http://127.0.0.1:53686/assets/application.js:28807
at http://127.0.0.1:53686/assets/application.js:37581
at http://127.0.0.1:53686/assets/application.js:28807 in s
at http://127.0.0.1:53686/assets/application.js:28807
at http://127.0.0.1:53686/assets/application.js:32910
at http://127.0.0.1:53686/assets/application.js:28807 in s
at http://127.0.0.1:53686/assets/application.js:28807 in e
at http://127.0.0.1:53686/assets/application.js:47260
at http://127.0.0.1:53686/assets/application.js:28807
at http://127.0.0.1:53686/assets/application.js:47262 (Capybara::Poltergeist::JavascriptError)
./features/step_definitions/service.steps.rb:16:in `/^the individual user$/'
features/service/new.feature:9:in `Given the individual user'
Run Code Online (Sandbox Code Playgroud)
我找到了解决方案.你需要使用垫片.我把文件放入vendor/assets/javascripts/es5-shim.js.
之后你需要初始化这个垫片.请注意,垫片应该在反应初始之前进行,这很关键!
的application.js
//= require es5-shim
//= require react
//= require react_ujs
Run Code Online (Sandbox Code Playgroud)
之后测试开始再次起作用.
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |