0

我将不胜感激帮助对以下代码中的错误进行排序:

require 'rubygems'
require 'watir'
require 'watir-webdriver'
require 'test/unit'

class TestGoogle < Test::Unit::TestCase    
  def setup
    @browser = Watir::Browser.new :firefox
  end

  def testSignInLink
    @browser.goto "http://google.com/"
    po = PageObjects.new(@browser)
    po.clickLinkSignIn
  end
end

class PageObjects
  def initialize( browser )
    @browser = browser
  end

  def clickLinkSignIn()
    @browser.link(:id, "gb_70").click
  end
end

tg = TestGoogle.new
tg.setup
tg.testSignInLink

错误是:

Uncaught exception: wrong number of arguments (0 for 1)
C:/Ruby193/lib/ruby/1.9.1/minitest/unit.rb:971:in `initialize'
C:/RubymineProjects/ditto/Google_01_TU_02.rb:28:in `new'
C:/RubymineProjects/ditto/Google_01_TU_02.rb:28:in `<top (required)>'

第 28 行是:

tg = TestGoogle.new

奇怪的是,该脚本随后运行完成,并显示了谷歌登录页面。

请注意,还没有断言——我一次只做一小步。

编辑后添加:

C:/Ruby193/lib/ruby/1.9.1/minitest/unit.rb:971 中的初始化程序

  def initialize name # :nodoc:
    @__name__ = name
    @__io__ = nil
    @passed = nil
  end
4

1 回答 1

0

我认为这整个问题对所有好的评论者都是不公平的。

原因:作为一个实验,我把代码的最后3行注释掉了:

tg = TestGoogle.new
tg.setup
tg.testSignInLink

测试运行完美。

我之前假设我需要一些方法来“启动”TestGoogle 类中的方法。类似于依次调用所有方法的“主”程序。

也许这就是@justinko 所指的?那么,TestGoogle 类是一个测试运行器吗?

我想我需要向评论者道歉。

于 2013-10-08T17:31:36.050 回答