我从来没有用javascript做过任何测试。我知道,我知道。但原因是我以前从来没有构建过大型的javascript应用程序,所以我从来没有看到任何进入测试的理由。
但现在我想是时候开始了。
唯一的问题是,无论我去哪里,每个测试框架似乎都依赖于这样一个事实,即人们已经知道如何使用javascript进行测试,他们只关注为什么他们的测试框架比下一个更好。
我想要的,是对使用javascript进行测试的一个非常基本的介绍。什么时候是必要的?你应该测试什么?测试应该如何设置?你多久测试一次?你知道,就是非常,非常基本的东西。
因此,任何指向文本或视频的链接都将受到高度赞赏(:
谢谢。
编辑:只是想说明一下:我要找的是测试介绍,而不是特定的框架。因为现在,我甚至不知道为什么我要测试...
如果有任何关于这个主题的书籍,那就更好了。
第二次编辑:我从Nicholas Zakas on Yahoo! Theatre找到了一个非常好的视频,他首先解释了javascript的测试驱动开发实践,然后解释了如何使用YUI测试来实现这些目标。
发布于 2009-09-23 10:55:37
单元测试通常允许您构建一组小型测试,以验证代码的细粒度部分,特别是边缘情况。这在Javascript中尤其有用,因为您的应用程序需要在不同的浏览器平台上以相同的方式运行。
创建一套这样的测试可以确保您今天所做的更改不会破坏您昨天(或一个月前)编写的代码。
例如,您的应用程序中可能有一部分遍历文档中的所有DOM节点,以查找并绑定到它所关心的节点。您决定对此进行优化,也许可以使用jquery选择器。如果您有一个测试,所有可能的节点都可以被正确地找到,那么您可以在任何目标浏览器上快速查看您所做的更改是否破坏了任何东西。
您还可以使用各种框架“伪造”XmlHttpRequest与服务器的交互-这允许您验证您的客户端代码可以正确地对从后端返回的所有类型的结果和错误做出反应。
基本上,与其他语言一样,JS中的单元测试允许您通过这些更改自动回答“我刚才破坏了什么吗”这个问题?
发布于 2009-09-23 10:29:44
javascript中的单元测试虽然很棒,但可能不像大多数其他语言中的单元测试那样令人满意。
主要原因是javascript非常依赖于它运行的浏览器--再加上异步行为是如此普遍,以至于开始使用它可能有点令人生畏。
这里有几个可以帮助你入门的东西,只是不要期望一个令人难以置信的简单入门,也不要期待其他语言往往会获得的直接收益。
John Resig做了一个关于在javascript中测试的局限性的excellent writeup,这可能是一个很好的起点。
这是一个开始在fireunit中为javascript BDD编写测试的video。
发布于 2009-09-23 10:36:28
我发现在XHR (AJAX)调用中,Javascript单元测试经常是必要的。您可以编写单元测试来断言响应是您期望的响应。服务器端和客户端的测试驱动开发可以帮助您解决问题--发送的参数是否足够?是不是有什么东西在路上被弄坏了?序列化程序是否按照我期望的方式运行?测试的设置就像在任何其他环境中一样-减少和简化测试以隔离问题。
对于非常基本的内容,我建议您开始使用Firebug进行调试(设置断点等),然后再使用Selenium进行单元测试。
https://stackoverflow.com/questions/1465145
复制相似问题