我会帮忙感谢在下面的代码排序错误:为什么在下面的代码中有错误?
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
奇怪的是,然后脚本运行完成,并显示Google登录页面。
请注意,目前还没有断言 - 我一次只做这一小步。
添加编辑后:
C语言中的初始化:/Ruby193/lib/ruby/1.9.1/minitest/unit.rb:971
def initialize name # :nodoc:
@__name__ = name
@__io__ = nil
@passed = nil
end
Test :: Unit :: TestCase是否要求您在TestGoogle类中实现顶级方法? IOW,它在基础类中是虚拟的吗? – KevinDTimm
'TestGoogle'只是继承'Test :: Unit :: TestCase'的'initialize'。 Test :: Unit :: TestCase初始值设定项是否需要一个参数?即使它看起来有效,但测试类中还有一些不起作用的东西,目前您可能还没有使用。 – lurker
@mbratch:这是初始化程序的代码,这对我来说几乎没有任何意义: – OldGrantonian