点击不使用react component + capypara

时间:2016-08-08 12:46:32

标签: ruby testing reactjs capybara react-rails

我有一个反应组件,当我点击图标时,状态发生变化,然后我输入一个输入而不是图标。

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

由于水豚,点击在组件上是否有效?或者只是不工作,因为它是反应成分?

组件:

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

1 个答案:

答案 0 :(得分:0)

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