高效的JavaScript代码单元测试方法(6)

发表于:2013-01-11来源:web开发社区作者:Hazem Saleh点击数: 标签:JavaScript
19 document.getElementById( usernameMessage ).innerHTML); 20 assertEquals ( Password is not validated correctly! , This field is required , 21 document.getElementById( passwordMessage ).innerHTML); 22
19     document.getElementById("usernameMessage").innerHTML);
20     assertEquals ("Password is not validated correctly!", "This field is required"
21     document.getElementById("passwordMessage").innerHTML);    
22 };

  ApplicationUtilTest 对象通过 JsTestDriver TestCase 对象创建。如果您熟悉 JUnit 框架,那么您肯定熟悉 setUp 和 testXXX 方法。setUp方法用于初始化测试用例。对于本例,我使用该方法来声明一个 HTML 片段,该片段将用于其他测试用例方法。

  DOC 注释是一个 JsTestDriver 惯用语,可以用于轻松声明一个 HTML 片段。

  在 testValidateLoginFormBothEmpty 方法中,创建了一个 ApplicationUtil 对象,并在测试用例方法中使用该对象。然后,代码通过检索用户名和密码的 DOM 元素并将它们的值设置为空值来模拟输入空用户名和密码。可以调用 validateLoginForm 方法来执行实际表单验证。最后,将调用 assertEquals 来确保 usernameMessage 和 passwordMessage span 元素中的消息是正确的,即:This field is required。

  在 JsTestDriver 中,可以使用以下构件:

  fail("msg"):表明测试一定会失败,消息参数将显示为一条错误消息。

  assertTrue("msg", actual):断定实际参数正确。否则,消息参数将显示为一条错误消息。

  assertFalse("msg", actual):断定实际参数错误。否则,消息参数将显示为一条错误消息。

  assertSame("msg", expected, actual):断定实际参数与预期参数相同。否则,消息参数将显示为一条错误消息。

  assertNotSame("msg", expected, actual):断定实际参数与预期参数不相同。否则,消息参数将显示为一条错误消息。

  assertNull("msg", actual):断定参数为空。否则,消息参数将显示为一条错误消息。

  assertNotNull("msg", actual):断定实际参数不为空。否则,消息参数将显示为一条错误消息。

  其他方法的代码包含其他测试用例。清单 4 显示了测试用例对象的完整代码。

  清单 4. ApplicationUtil 对象完整代码

  查看源代码

打印帮助
01 ApplicationUtilTest = TestCase ("ApplicationUtilTest");
02  
03 ApplicationUtilTest.prototype.setUp = function () {
04 /*:DOC += <FORM action=""><table><tr><td>Username</td><td>
05 <input type="text" id="username"/></td><td><span id="usernameMessage">
06 </span></td></tr><tr><td>Password</td><td>

原文转自:http://www.ltesting.net