JavaScript库的测试驱动开发

时间:2011-03-05 12:27:42

标签: javascript tdd

目前我正在开发一个用于Web服务的JS库,您可以将它与Twitter Anywhere进行比较。现在我想让它更加以测试为导向。 测试并不容易,因为它必须适用于每个想要使用它的网站,当然还有每个浏览器。

如何有效地测试库?

所有API请求和响应都是JSON,是否有一种测试这些调用的好方法?

我知道Cucumber和js-test-driver。

问候, Chielus

2 个答案:

答案 0 :(得分:5)

Javascript语言本质上是动态的,所以它实际上是测试驱动的友好。我最近有一些javascript测试经验。我使用TDD重写了主要的javascript组件,并获得了清晰的设计和更紧凑的代码!

  1. 选择的单元测试框架是qUnit。从测试开始很容易。
  2. choise的功能测试框架是funcunit
  3. 我做了一篇关于使用FuncUnit here测试REST api的博客文章。

    如果您需要一些测试和实施示例,可以查看我的github repository

    不要问问题,只需开始测试:)

答案 1 :(得分:2)

如果您了解jsTestDriver,我认为您已经找到了一个很好的解决方案?

您可以使用它在多个浏览器中自动启动测试并返回成功或失败。

这使得它与其他使用无头浏览器的工具区别开来,就像jsTestDriver一样,你在真正的浏览器中运行你的测试,这似乎符合你的要求。

jsTestDriver带有自己有限的断言框架,但你可以将其他人插入其中,包括QUnit,YUI和Jasmine。

你在上面谈到Jasmine,“我认为我不能做BDD,因为它是一个必须与各种网站合作的图书馆。”我不确定你的意思是什么?

Jasmine提供了所有断言,让您可以像QUnit一样进行测试。它还允许您“窥探”Ajax回调,拦截JSON以检查甚至更改它,然后将其传递给您的默认回调。有了这个,您可以检查JSON响应,然后在UI以正确的方式对其做出反应时再次检查。