我正在尝试将一些JavaScript单元测试合并到我的自动构建过程中.目前JSUnit与JUnit配合得很好,但它似乎是放弃软件,缺乏对AJAX,调试和超时的良好支持.
有没有人幸运(使用ANT)单元测试库,如YUI测试,JQuery的QUnit或jQUnit(http://code.google.com/p/jqunit/)?
注意:我使用自定义构建的AJAX库,因此Dojo的DOH问题在于它要求您使用自己的AJAX函数调用和事件处理程序来处理任何AJAX单元测试.
我正准备开始在我正在开发的新项目上进行Javascript TDD.我目前的计划是使用qunit进行单元测试.虽然可以通过在浏览器中刷新测试页来运行开发测试.
为了持续集成(并确保测试在所有浏览器中运行),我将使用Selenium在每个浏览器中自动加载测试工具,并读取结果.这些测试将在每次签入源代码控制时运行.
我还将使用JSCoverage来获取测试的代码覆盖率分析.这也将通过Selenium实现自动化.
我目前正在设置它.一旦我将设置敲定,我将更详细地更新此答案.
测试工具:
qunit
JSCoverage
硒
有很多javascript单元测试框架(jsUnit,scriptaculous,...)但jsUnit是我所知道的唯一一个可以与自动构建一起使用的框架.
如果您正在进行"真正的"单元测试,则不需要AJAX支持.例如,如果您使用的是RPC ajax框架(如DWR),则可以轻松编写模拟函数:
function mockFunction(someArg, callback) { var result = ...; // some treatments setTimeout(
function() { callback(result); }, 300 // some fake latency
); }
是的,JsUnit确实处理超时:在jsUnit测试中模拟时间
我是js-test-driver的忠实粉丝
它在CI环境中运行良好,能够捕获实际的浏览器以进行跨浏览器测试.