如何显示该数字在 Ruby 中增加了

How to show that number has incremented in Ruby

我有代码,当我点击一个按钮时,数字会增加,我想确保数字增加了,我能够看到值已经改变,但无法显示它增加了1. 这是代码;

When(/^I click the create room button$/) do
  createpress = @browser.iframe(:id , 'iconsole-plugin-session_iframe__').button(:id , 'create_room_form_button')
  list = @browser.iframe(:id , 'iconsole-plugin-session_iframe__').div(:id , 'room_list')
  rooms = []

  list.as.each do | room |
    rooms << room.attribute_value('data-room-id')
  end

  roomvalue = rooms.size.to_i
  puts roomvalue

  Watir::Wait.for_condition(10 , 2 , "Waiting for button to be present") {
    createpress.present?
  }
  createpress.click
end

Then(/^the lobby will update to show the new room$/) do
  list = @browser.iframe(:id , 'iconsole-plugin-session_iframe__').div(:id , 'room_list')
  rooms = []

  list.as.each do | room |
    rooms << room.attribute_value('data-room-id')
  end

  puts rooms.size.to_i
end

我只是不确定如何让 2 个输出显示我正在寻找的信息(增加 1)

您需要设置一个实例值来控制您的房间大小。 (注意:在 ruby-Cucumber 中,所有 运行 都在世界内部,因此这是您在其上设置实例变量并且您的世界在 stepdef 中持续存在的对象。

作为奖励,您可以使用 rspec 的期望 gem 来提供更自然的英语编写代码的方式。

When(/^I click the create room button$/) do
  ..snip..
  @current_rooms = rooms
  ..snip..
end

Then(/^the lobby will update to show the new room$/) do
  ..snip..
  updated_room_list = rooms
  updated_room_list.should have(@current_rooms.size + 1).rooms
  ..snip..
end

这是关于 rspec's collection.should have

的信息

注意:如果您曾经 运行 并行测试套件并且有其他测试正在添加或删除房间,则您的测试可能 运行 出现问题。最好确保新房间的名称出现在列表中并且房间数正确,而不是检查是否比上次多了一个房间。