ruby - 单击不使用 React 组件 + capypara

标签 ruby testing reactjs capybara react-rails

我有一个 react 组件,当我点击一个图标时,状态会改变,然后我输入一个输入而不是图标。

当我尝试在我的测试中模拟它时,使用 capybara 的组件不会改变。

有没有可能因为 capybara 的缘故点击在组件上不起作用?或者只是因为它是一个 React 组件而不起作用?

组件:

render() {
  return (
    <div>
      { this.state.editable ? this.renderEditableComponent() : this.renderNotEditableComponent() }
    </div>
) }

  renderEditableComponent() {
   return (
    <EditableDeliverLimit
      value={ this.state.value }
      handleClick={ this.handleClick.bind(this) } />
  ) }

  renderNotEditableComponent() {
    return (
      <NotEditableDeliverLimit
       value={ this.state.value }
       handleClick={ this.handleClick.bind(this) } />
  ) }

测试:

Then "should successfuly change deliver limit" do
  wait_for_selector_appearance("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span")
  find("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span").click
  wait_for_selector_disappearance("##{ad_table_row_id(@ad)} .ad-table-row-deliver-limit span")
end

最佳答案

您使用的 PhantomJS 和 Qt WebKit 版本已过时,不支持 React 所需的 Function.prototype.bind。升级到 PhantomJS 2.1.1+ 并使用 Qt 5.5.1 重建 capybara-WebKit

关于ruby - 单击不使用 React 组件 + capypara,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829627/

相关文章:

ruby - 为什么我的 while 循环卡住了?我忘记了一步吗?

ruby-on-rails - Netbeans 上的 Rails : Uncaught exception: no such file to load -- script/server or script/console

iphone - 在越狱 iPhone 上测试应用程序

javascript - 我的 setState 函数在 IOS 上不起作用

css - 是否可以按条件对带有CSS的div进行排序

mysql - Rails 项目与 MySQL DB 的连接错误 - root 用户访问被拒绝

ruby - 优化这个ruby循环结构

android - clickView如何正确使用?

testing - 在 Selenium IDE 中,如何获取基本 url 的值

javascript - React JS 对象集合的状态更新