你如何使用单元测试和某种IDE开发Javascript

时间:2014-09-14 12:45:24

标签: javascript eclipse

我不喜欢保存文件,切换到网络浏览器并刷新并查看它是否有效。

这就是我要问的原因。

当我必须触摸PHP时,我使用Eclipse,我可以创建单元测试并确保它正常工作,我不会写一点,测试然后写一点并测试。所以我希望"开发" Javascript以同样的方式,编写一个块,确保它有效,但我不确定如何测试按钮触发的操作说。

我已经搜索过" Javascript开发"和其他术语一样,我得到了预期的废话...好吧你好世界的Javascript snippits真的。

有人能指出我正确的方向吗?我目前使用Eclipse(Eclipse CDT,PyDev,Eclipse PHP等),我可以调试。我可以在没有Javascript的逐步调试的情况下做到,但我真的很喜欢单元测试。

我遇到的另一个问题是难以找出问题所在,甚至PHP都可以给你一个通话跟踪,我在网络开发人员中遇到了Firefox的烦人的访问错误设置。

必须有更好的方法,但我很难找到它。

6 个答案:

答案 0 :(得分:1)

Firefox确实有一个名为firebug的插件。如果这不是你正在讨论的烦人的Firefox工具,你应该检查一下,看看它是否会对你有所帮助。

答案 1 :(得分:1)

第一步;静态分析:http://www.jslint.com/

第二步;测试:Automatic tests in Eclipse for JavaScript

第三步JavaScript The Good Parts

答案 2 :(得分:1)

我建议你使用chrome开发者模式,或者你可以使用firebug for firefox。

here

获取萤火虫

答案 3 :(得分:1)

看一下Grunt,它是一个命令行“JavaScript任务运行器”,它有助于自动化缩小,编译,linting和单元测试等事情。

许多其他工具和框架都有很多插件。如果您不使用不支持单元测试的框架或框架,则应使用测试框架。看看,这里有一个(主要是tdd样式)框架列表:JavaScript unit test tools for TDD

测试通常通过grunt test在控制台中“无头”运行。根据测试框架的不同,可能还会有一个更好看的生成网页,向您显示最新的测试结果。您可以在IDE中设置按钮/热键/操作以运行此控制台命令(大多数编辑器也具有此功能)以开始您的单元测试。

我使用grunt作为Yeoman的一部分(它添加了一个包管理器和脚手架以及一些grunt插件),其中我发现的最有用的功能是你可以对文件更改进行咕噜声。这意味着您甚至不需要设置IDE或文本编辑器来使用grunt。您只需保存文件,grunt将自动运行单元测试等任务。另一个有用的功能是grunt serve命令与livereload插件结合使用,它将启动一个服务器,在您保存文件时自动在浏览器中重新加载页面。

缺点是它似乎更专注于单页面webapps。如果你有在服务器端生成的复杂页面而只有一些javascript它可能不适合你的需要。

答案 4 :(得分:1)

如果你想进行单元测试,你会谈到QUnit,Jasmine或Mocha / Chai。 (我用Mocha / Chai)。棘手的部分是没有浏览器测试。您的第一个选择是使用CasperJs和PhantomJs。这些无头浏览器可以运行JavaScript而无需在实时浏览器中运行,因此您可以从命令行自动执行所有测试。如果您还添加了Karma,则可以使用无头方式在指定的浏览器中进行测试。

如果您使用的是PHP,则可以从Packagist存储库安装Codeception。在集成测试模块下,添加Selenium。然后,这将询问您希望它启动的浏览器。这是使用PHP和PHP进行测试的最好方法(如果你使用PhpBrowser,另一个是默认包,它更快,但它不能识别javaScript),但它具有很高的性能成本,因为它实际上会打开一堆不同浏览器并进行每项测试。除了作为构建过程的最后一部分之外,我不建议这样做。

如果你想学习如何彻底测试JavaScript,这是你的家伙:

http://www.letscodejavascript.com/

答案 5 :(得分:1)

我正在使用jasmine.js进行单元测试。

我的编辑器是Brackets,它有一个内置的网络服务器。括号打开你的html页面,其中包含JS代码,即每次你保存由html文件加载的js文件时自动重新加载页面。

结合茉莉花我有一个设置,我的单位测试总是在我保存js文件时运行。

但是,如果您想测试Button的功能,这并没有什么帮助。我认为有两种可能性:

  1. 如果您的Button启动了一些不会更改UI的代码,那么您应该从事件处理程序中拆分businiesslogic,以便您可以在没有ui的情况下从单元测试中调用bussinesslogic。
  2. 如果Button更改了UI,您可以使用Selenium或任何其他用于测试GUI的工具