高效率 JavaScript 单元测试

高效 JavaScript 单元测试? 这个表单很简单,仅包含用户名和密码字段。单击提交按钮时,将通过 ApplicationUt

高效 JavaScript 单元测试

?

这个表单很简单,仅包含用户名和密码字段。单击提交按钮时,将通过 ApplicationUtil 执行一个特定的表单验证。以下是负责验证 HTML 表单的 JavaScript 对象。清单 2 显示了 ApplicationUtil 对象的代码。


清单 2. 损坏的 ApplicationUtil 对象代码

?

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 对象完整代码

?


图 2. JavaScript 测试文件夹结构

组织好源和测试文件夹后,必须提供配置文件。默认情况下,JsTestDriver 运行程序会寻找名为 jsTestDriver.conf 的配置文件。您可以从命令行更改配置文件名称。清单 5 显示了 JsTestDriver 配置文件的内容。


清单 5. JsTestDriver 配置文件内容

?

注意,在清单 6 中,主要问题出在 Firefox 上。测试在 Internet Explorer 和 Safari 上均可顺利运行。

描述名字大小下载方法源代码simple.zip3.35MBHTTP

关于下载方法的信息

?

本文转载于developerWorks,原文在这里