我會幫忙感謝在下面的代碼排序錯誤:爲什麼在下面的代碼中有錯誤?
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