我将非常感谢您在以下代码中对错误进行排序:
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
答案 0 :(得分:0)
我认为这整个问题对所有优秀的评论者都不公平。
原因:作为一项实验,我注释掉了代码的最后3行:
tg = TestGoogle.new
tg.setup
tg.testSignInLink
测试完美无缺。
我以前认为我需要一些方法来“启动”TestGoogle类中的方法。类似于依次调用所有方法的“主”程序。
也许这就是@justinko指的是什么?那么,TestGoogle类是一个测试运行者?
我想我需要向评论者道歉。