Running unit tests in graphical mode


#1

Hi,

I have the following program written and when I run It comes up saying
zero tests.
what more should include in the code below for it to run in graphical
mode.
Please Help

require ‘test/unit/ui/tk/testrunner’
class Roman
MAX_ROMAN = 4999

def initialize(value)
    if value <= 0 || value > MAX_ROMAN
        fail "Roman values must be > 0 and <= #{MAX_ROMAN}"
    end
    @value = value
end
FACTORS = [["m", 1000], ["cm", 900], ["d", 500], ["cd", 400],
                     ["c", 100], ["xc", 90], ["l", 50], ["xl", 40],
                     ["x", 10],["ix" ,9], ["v", 5], ["iv", 4],
                     ["i", 1]]

def to_s
    value = @value
    roman = "";
    for code, factor in FACTORS
        count, value = value.divmod(factor)
        roman << (code * count)
    end
    roman
end

end
class TestRoman < Test::Unit::UI::Tk::TestRunner
def test_simple
assert_equal(“i”, Roman.new(1).to_s)
assert_equal(“ix”, Roman.new(9).to_s)
assert_equal(“ii”, Roman.new(2).to_s)
assert_equal(“iii”, Roman.new(3).to_s)
assert_equal(“iv”, Roman.new(4).to_s)
end
end

Thanks,
Navya.


#2

Hi Navya,

you have to change two lines in your code:

require ‘test/unit/ui/tk/testrunner’

Change the preceding line to:

require ‘test/unit’

class TestRoman < Test::Unit::UI::Tk::TestRunner

Change that to:

class TestRoman < Test::Unit::TestCase

A TestRunner is the thing that is running all your tests, which should
be subclasses of Test::Unit::TestCase. To find out how to use another
TestRunner, run your script with the option -h:

ruby <yourscript.rb> -h

Regards,
Pit


#3

From: Navya A. removed_email_address@domain.invalid
Subject: running unit tests in graphical mode
Date: Wed, 25 Jan 2006 14:15:01 +0900
Message-ID: removed_email_address@domain.invalid

require ‘test/unit/ui/tk/testrunner’

require ‘test/unit’

class Roman

(snip)

end
class TestRoman < Test::Unit::UI::Tk::TestRunner

class TestRoman < Test::Unit::TestCase

def test_simple
    assert_equal("i", Roman.new(1).to_s)
    assert_equal("ix", Roman.new(9).to_s)
    assert_equal("ii", Roman.new(2).to_s)
    assert_equal("iii", Roman.new(3).to_s)
    assert_equal("iv", Roman.new(4).to_s)
end

end

When the filename is ‘test_roman.rb’,
please call “ruby test_roman.rb --runner=tk”.