2011-08-02 65 views
0

嗨,我正在學習編寫測試的情況下,我開始小試的情況下爲小programs.Iam試圖程序測試用例錯誤?

require 'test/unit' 
class YearTest < Test::Unit::TestCase 
def test_hours(m) 
    p = Year.new 
    assert_equal(p.hours,m) 
    # assert_equal(p.hours,8784) 
end 
end 
class Year 
    def hours(a) 
    d = 24 
    if (a%400 == 0) 
    return h = d * 366 
    else 
    return h = d * 365 
    end 
    puts h 
    end 
end 
puts "enter a year" 
n = gets.to_i 
y = Year.new 
y.hours(n) 

,當我在NetBeans中運行這個程序我在測試用例得到錯誤..任何人都可以幫助解決這個問題嗎?

回答

0

你的測試用例需要指定一個特定的情況;它並不打算像你正在做的那樣交互式地完成。

像這樣的事:

require 'test/unit' 

class YearTest < Test::Unit::TestCase 
    def test_hours 
    y = Year.new 
    assert_equal 8760, y.hours(2001) 
    assert_equal 8784, y.hours(1996) 
    end 
end 
+0

我在哪裏可以瞭解寫這個測試用例?你能告訴我傑勒米嗎? –

+0

嗯。 Ruby上的Wikibook這部分看起來很合理。 http://en.wikibooks.org/wiki/Ruby_Programming/Unit_testing 這是一箇舊視頻,但我認爲這仍然是如何使用Test :: Unit進行測試驅動開發的一個很好的演示。 http://screencasts.textmate.org/ruby_quiz_screencast.mov –