读书人

高效率 JavaScript 单元测试

发布时间: 2012-07-04 19:33:54 作者: rapoo

高效 JavaScript 单元测试

?

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


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

?

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

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

testValidateLoginFormBothEmpty 方法中,创建了一个 ApplicationUtil 对象,并在测试用例方法中使用该对象。然后,代码通过检索用户名和密码的 DOM 元素并将它们的值设置为空值来模拟输入空用户名和密码。可以调用 validateLoginForm 方法来执行实际表单验证。最后,将调用 assertEquals 来确保 usernameMessagepasswordMessage 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,原文在这里

读书人网 >JavaScript

热点推荐