var testCaseList = [];
function TestCase(name) {
- this.name = name;
- this.toString = function() {
+ var testCase = function() { return this; };
+ testCase.name = name;
+ testCase.toString = function() {
return "Fake test case " + name;
};
- var testCase = function() { return this; };
testCase.prototype.setUp = function() { };
testCase.prototype.tearDown = function() { };
/**
return false;
}
};
+
testCase.prototype.runAllTests = function() {
+ var results = {};
+ var names = this.getTestNames();
+ for (var idx in names) {
+ var name = names[idx];
+ console.log("Running " + name);
+ var result = this.runTest(name);
+ results[name] = result;
+ }
+ console.log(prettyPrintEntity_(results));
+ return results;
+ };
+
+ testCase.prototype.getTestNames = function() {
// what's better than for ... in for non-array objects?
- var tests = {};
+ var tests = [];
for (var name in this) {
if (name.indexOf('test') == 0 && typeof(this[name]) == 'function') {
- console.log("Running " + name);
- var result = this.runTest(name);
- tests[name] = result;
+ tests.push(name);
}
}
- console.log(prettyPrintEntity_(tests));
- };
+ return tests;
+ }
- testCaseList.push(testCase);
+ testCaseList.push({name : name, testCase : testCase});
return testCase;
};
var num_tests = 0;
for (var i = 0; i < testCaseList.length; i++) {
- var tc_class = testCaseList[i];
+ var tc_class = testCaseList[i].testCase;
for (var name in tc_class.prototype) {
if (name.indexOf('test') == 0 && typeof(tc_class.prototype[name]) == 'function') {
if (globalTestDb.hasOwnProperty(name)) {
console.log('Loaded ' + num_tests + ' tests in ' +
testCaseList.length + ' test cases');
}
+
+function getAllTestCases() {
+ return testCaseList;
+}