Jstestdriver设置和拆解

时间:2009-12-04 03:18:41

标签: javascript unit-testing

有没有人知道JsTestdriver的setUp和tearDown函数/方法的语法?在他们的网站上,他们声称能够定义它,但我无法做到正确。

感谢。

1 个答案:

答案 0 :(得分:4)

我下载代码并为“setUp”加油并发现以下内容:

javascript/TestCaseBuilder.js:  if (typeof testCaseClass.prototype.setUp == 'undefined') {
javascript/TestCaseBuilder.js:    testCaseClass.prototype.setUp = function() {};
javascript/plugins/TestRunnerPlugin.js:    if (testCaseInstance.setUp) {
javascript/plugins/TestRunnerPlugin.js:      testCaseInstance.setUp();

类似于“tearDown”:

javascript/TestCaseBuilder.js:  if (typeof testCaseClass.prototype.tearDown == 'undefined') {
javascript/TestCaseBuilder.js:    testCaseClass.prototype.tearDown = function() {};
javascript/plugins/TestRunnerPlugin.js:      if (testCaseInstance.tearDown) {
javascript/plugins/TestRunnerPlugin.js:        testCaseInstance.tearDown();

所以似乎setUp和tearDown函数的定义与任何其他测试函数一样,只是它们的名称是'setUp'和'tearDown'。他们的例子是:

GreeterTest = TestCase("GreeterTest");

GreeterTest.prototype.testGreet = function() {
  var greeter = new myapp.Greeter();
  assertEquals("Hello World!", greeter.greet("World"));
};

如果您不熟悉“原型”键(因为它在javascript中具有非常特殊的含义),并且不知道您是什么级别的js程序员,那么请查看these YUI vids

然而,这似乎是一个非常糟糕的设计决定,因为这样你只能定义一个setUp和tearDown函数,所以我觉得必须有一个更好的方法,但这是我能找到的最好的。

我同意他们对setUp,tearDown的文档描述似乎并不是最直观的。

如果您正在寻找其他选项,我只是开始学习Selenium并且发现它令人满意(尽管我的文档也缺少一点)