javascript - javascript中的单元测试简介

标签 javascript unit-testing

我从来没有在javascript中做过任何测试。我知道我知道。但原因是我以前从未构建过大型 javascript 应用程序,所以我从未看到任何进行测试的理由。

但现在我想是时候开始了。

唯一的问题是,无论我走到哪里,每个测试框架似乎都依赖于人们已经知道如何使用 javascript 进行测试的事实,他们只关注为什么他们的测试框架比下一个更好。

我想要的是对使用 javascript 进行测试的非常基本的介绍。什么时候需要?你应该测试什么?应该如何设置测试?你多久测试一次?你知道,只是非常非常基本的东西。

因此,任何指向文本或视频的链接都将受到高度赞赏(:

谢谢。

编辑:只是要明确一点:我正在寻找的是对测试的介绍,而不是特定的框架。因为现在,我什至不知道我为什么要测试...

如果有任何关于这个主题的书籍,那就更好了。

第二次编辑:我从 Nicholas Zakas on Yahoo! Theatre 找到了一个非常棒的视频,他首先解释了 javascript 的 TDD 实践,然后解释了如何使用 YUI 测试来实现这些目标。

最佳答案

通常,单元测试允许您构建一组小型测试,以验证代码的细粒度位,尤其是边缘情况。这在 Javascript 中特别有用,因为您的应用程序需要在不同的浏览器平台上以相同的方式运行。

创建一套这样的测试可以确保您今天所做的更改不会破坏您昨天(或一个月前)编写的代码。

例如,您的应用程序的一部分可能会遍历文档中的所有 DOM 节点以查找并绑定(bind)到它关心的节点。您决定优化它,也许通过使用 jquery 选择器。如果您有一个可以正确找到所有可能节点的测试,您可以在任何目标浏览器上快速查看您刚刚所做的更改是否破坏了任何内容。

您还可以使用各种框架“伪造”与服务器的 XmlHttpRequest 交互 - 这允许您验证您的客户端代码是否可以正确响应从后端返回的各种结果和错误。

基本上,与其他语言一样,JS 中的单元测试允许您通过这些更改自动回答“我刚刚破坏了任何东西”的问题吗?

关于javascript - javascript中的单元测试简介,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1465145/

相关文章:

javascript - 如何在光标处添加字符?

unit-testing - Grails 单元测试无法识别域类上的 .save()

android - 在 Android Marshmallow 中启用模拟位置

java - 如何在 JUnit 4 中运行属于某个类别的所有测试

angularjs - 在 UI-Router 中获取当前 Controller 实例? (在测试中)

javascript - 如何知道异步 for 循环何时完成?

javascript - 通过 Ajax 加载内容,无需哈希

java - Junit4:如何动态创建测试套件

javascript - 动态创建 greasemonkey 脚本

javascript - 使用jquery,如何清除 Canvas 中的项目?