160x120(3678bytes) TclTkUnit Project

How to use TclTkUnit?

160x120(3678bytes)
Actor
--> Tcl/Tk is tested! --> 160x120(3678bytes)
Happy!!

Sample test : Base source code.

  File name is "./add1.tcl"
#!/usr/bin/tclsh

proc add1 {x} {
    return [expr $x + 1]
}

Sample:TestCase/TestRunner -- The test of the namespace unit

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval add1Test {
    proc testAdd1 {} {
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
    proc testAdd4 {} {
	set answer [expr 3 + 1]
	set req [add1 3]
	Test::assertEquals $answer $req
    }
}

TestRunner::run [TestCase::create "add1Test"]
Test::assert method
methodDescription
error {message} or
error {}
Error had a message about.
assertTrue {message condition}] or
assertTrue {condition}
Ture check.
assertFalse {message condition} or
assertFalse {condition}
False check.
assertEquals {message expected actual} or
assertEquals {expected actual}
The same value.
assertEqualsString {message expected actual} or
assertEqualsString {expected actual}
The same string.
assertNotEquals {message expected actual} or
assertNotEquals {expected actual}
The different value.
assertNotEqualsString {message expected actual} or
assertNotEqualsString {expected actual}
The different string.

Sample:TestSuite -- The test of the namespace group

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval add1Test {
    proc testAdd1 {} {
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
    proc testAdd4 {} {
	set answer [expr 3 + 1]
	set req [add1 3]
	Test::assertEquals $answer $req
    }
}

namespace eval suiteTest {
    proc testAdd5 {} {
	set answer [expr 4 + 1]
	set req [add1 4]
	Test::assertEquals $answer $req
    }
}

set obj [TestSuite::create "1thTestSuite"]
TestSuite::addTest $obj [TestCase::create "add1Test"]
TestSuite::addTest $obj [TestCase::create "suiteTest"]
TestRunner::run $obj

Sample:TestRepeated -- Repeated.

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval repeatTest {
    proc testAdd1 {} {
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
}

set objId [TestCase::create "repeatTest"]
set repeatId [TestRepeated::create "repeat test" 6]
TestRepeated::setTest $repeatId $objId
TestRunner::run $repeatId

Sample:setUp and tearDown -- per namespace

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval add1Test {
    proc setUp {} {
	puts "setUp"
    }
    proc tearDown {} {
	puts "tearDown"
    }
    proc testAdd1 {} {
	puts "testAdd1"
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
    proc testAdd4 {} {
	puts "testAdd4"
	set answer [expr 3 + 1]
	set req [add1 3]
	Test::assertEquals $answer $req
    }
}

TestRunner::run [TestCase::create "add1Test"]
  Test result.
$ ./setUp.tcl
setUp
testAdd4
tearDown
setUp
testAdd1
tearDown
OK (2)

Sample:TestSetUp -- per TestSuite

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval add1Test {
    proc testAdd1 {} {
	puts "testAdd1"
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
    proc testAdd4 {} {
	puts "testAdd4"
	set answer [expr 3 + 1]
	set req [add1 3]
	Test::assertEquals $answer $req
    }
}

namespace eval setUp {
    proc setUp {} {
	puts "setUp"
    }
    proc tearDown {} {
	puts "tearDown"
    }
}

set objId [TestSetUp::create "setUp"]
TestSetUp::setTest $objId [TestCase::create "add1Test"]
TestRunner::run $objId
  Test result.
$ ./setUp2.tcl
setUp
testAdd4
testAdd1
tearDown
OK (2)

Sample:TestSuite & TestRepeated -- Mixed test.

#!/usr/bin/tclsh
package require TclTkUnit
source "./add1.tcl"

namespace eval repeatTest {
    proc testAdd1 {} {
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
}

namespace eval multiTest {
    proc testAdd1 {} {
	set answer [expr 1 + 1]
	set req [add1 1]
	Test::assertEquals $answer $req
    }
}

set suiteId [TestSuite::create "1 th test"]
TestSuite::addTest $suiteId [TestCase::create "repeatTest"]
TestSuite::addTest $suiteId [TestCase::create "multiTest"]

set repeatId [TestRepeated::create "repeat test" 6]
TestRepeated::setTest $repeatId $suiteId

TestRunner::run $repeatId