Test.Unit.Runner
Unit Testing > Test.Unit.Runner
Introduction
Test.Unit.Runner
is a utility class for writing unit test cases with an easy to use syntax.
Syntax
new Test.Unit.Runner(functions [, options] );
The functions
and options
parameters are both {key: value}
collections.
Examples
Using Test.Unit.Runner
requires you to use a specific XHTML page template, that looks as follows:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Page title</title>
<script src="path/to/prototype.js" type="text/javascript"></script>
<script src="path/to/util.js" type="text/javascript"></script>
<script src="path/to/unittest.js" type="text/javascript"></script>
<!-- other JavaScript includes -->
<link rel="stylesheet" href="path/to/test.css" type="text/css" />
</head>
<body>
<!-- Log output -->
<div id="testlog"> </div>
<!-- here go any elements you do the testing on -->
<!-- Tests -->
<script type="text/javascript" language="javascript">
// <![CDATA[
new Test.Unit.Runner({
// optional setup function, run before each individual test case
setup: function() { with(this) {
// code
}},
// optional teardown function, run after each individual test case
teardown: function() { with(this) {
// code
}},
// test cases follow, each method which starts
// with "test" is considered a test case
testATest: function() { with(this) {
// code
}},
testAnotherTest: function() { with(this) {
// code
}}
}, { options });
// ]]>
</script>
</body>
</html>
Notice how the with(this) { ... }
syntax allows for easily calling on methods of the Test.Unit.Testcase class, which includes the assertions, as defined in Test.Unit.Assertions.
More Examples
Probably the best examples of Test.Unit.Runner are the actual tests used by script.aculo.us. Don’t be afraid to dive in to the code! See the test folder in the repository root.
Signature
Methods
initialize: function(testcases [, options])
parseResultsURLQueryParameter: function()
parseTestsQueryParameter: function()
getResult: function()
postResults: function()
runTests: function()
Properties
options: object (This is an object which is a modification of the options object passed into the initialize function
tests: Array of Testcases
currentTest: Number
logger: Test.Unit.Logger