目前我正在为web服务开发一个JS库,您可以将它与Twitter Anywhere进行比较。现在我想让它更加以测试为导向。 测试起来并不容易,因为它必须在每个想要使用它的站点上运行,当然也适用于每个浏览器。JavaScript库的测试驱动开发
如何有效地测试库?
所有的API请求和响应都使用JSON,有没有一种很好的方法来测试这些调用?
我了解Cucumber和js-test-driver。
问候, Chielus
目前我正在为web服务开发一个JS库,您可以将它与Twitter Anywhere进行比较。现在我想让它更加以测试为导向。 测试起来并不容易,因为它必须在每个想要使用它的站点上运行,当然也适用于每个浏览器。JavaScript库的测试驱动开发
如何有效地测试库?
所有的API请求和响应都使用JSON,有没有一种很好的方法来测试这些调用?
我了解Cucumber和js-test-driver。
问候, Chielus
Javascript语言的本质上是动态的,所以它是真正的测试驱动的友好。我最近在javascript测试方面有了一点经验。我使用TDD重写了主要的javascript组件,并获得了清晰的代码和更紧凑的代码!
我做了一个FuncUnit here测试REST API的博客文章。
如果你需要一些测试和实现的例子,你可以检查我的github repository。
不要问任何问题,刚开始测试:)
感谢您的博客文章,非常有趣的看到一个例子(这是非常接近我的用例!) – Chielus 2011-03-06 10:33:54
@Chielus - 欢迎! – 2011-03-07 07:01:43
如果你知道jsTestDriver我想你已经找到一个好的解决办法?
您可以使用它在多个浏览器中自动启动测试并返回成功或失败。
这使它与其他使用无头浏览器的工具分开,就像jsTestDriver在真实浏览器中运行测试一样,这似乎满足您的要求。
jsTestDriver带有自己有限的断言框架,但你可以插入其他人,包括QUnit,YUI和Jasmine。
你在上面说到Jasmine时说:“我不认为我能做BDD,因为它是一个必须与各种网站一起工作的图书馆。”我不确定你的意思是什么?
茉莉花提供所有的断言,让你做和QUnit一样的测试。它还可以让你'侦察'Ajax回调,拦截JSON来检查甚至改变它,然后将它传递给你的默认回调。有了这个,你可以检查JSON响应,然后再次检查你的用户界面是否以正确的方式做出反应。
你有没有看过Jasmine(http://pivotal.github.com/jasmine/)呢? – polarblau 2011-03-05 15:45:48
我不认为我可以做BDD,因为它是一个必须与各种网站一起工作的图书馆。 – Chielus 2011-03-07 08:44:39