繁体   English   中英

在javascript中介绍单元测试

[英]introduction to unit-testing in javascript

我从未在javascript中进行过任何测试。 我知道我知道。 但原因是我之前从未构建过大型javascript应用程序,所以我从未见过任何进入测试的理由。

但现在我觉得这是时候开始了。

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

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

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

谢谢。

编辑:只是为了说清楚:我正在寻找的是测试的介绍,而不是具体的框架。 因为现在,我甚至不知道为什么要测试......

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

第二次编辑:在雅虎上发现了一段来自Nicholas Zakas的精彩视频 剧院 ,他首先解释了javascript的TDD练习,然后解释了如何使用YUI测试来实现这些目标。

javascript中的单元测试虽然很棒,但可能不是单元测试在大多数其他语言中的美味。

这样做的主要原因是javascript依赖于它运行的浏览器 - 加上异步行为是如此普遍,开始使用它可能有点令人生畏。

这里有一些可能有助于您入门的事情,只是不要指望难以置信的入口,也不会有其他语言所获得的直接收益。

John Resig对javascript测试的局限性做了很好的写作 ,可能是一个不错的起点。

这是一个开始在fireunit中为javascript BDD编写测试的视频

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

通过创建一系列此类测试,您可以确保您今天所做的更改不会破坏您昨天(或一个月前)编写的代码。

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

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

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

我发现在XHR(AJAX)调用中经常需要Javascript单元测试。 您编写单元测试以断言响应是您期望的。 服务器和客户端上的测试驱动开发可以帮助您解决问题 - 是否发送了足够的参数? 路上有什么东西被破坏了吗? 序列化器的行为是否符合我的预期? 测试的设置与任何其他环境一样 - 减少并简化它以隔离问题。

对于非常基本的东西,我建议您开始使用Firebug进行调试(设置断点等),然后继续使用Selenium进行单元测试。

我会推荐JSpec 它是一个行为驱动开发框架,还附带了截屏视频。

JsUnit (不再维护)

JsUnit是客户端(浏览器内)JavaScript的单元测试框架。 它本质上是JUnit到JavaScript的一个端口。 还包括一个平台,用于在多个浏览器和运行不同操作系统的多台机器上自动执行测试。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM