目前我正在开发一个用于Web服务的JS库,您可以将它与Twitter Anywhere进行比较。现在我想让它更加以测试为导向。 测试并不容易,因为它必须适用于每个想要使用它的网站,当然还有每个浏览器。
如何有效地测试库?
所有API请求和响应都是JSON,是否有一种测试这些调用的好方法?
我知道Cucumber和js-test-driver。
问候, Chielus
答案 0 :(得分:5)
Javascript语言本质上是动态的,所以它实际上是测试驱动的友好。我最近有一些javascript测试经验。我使用TDD重写了主要的javascript组件,并获得了清晰的设计和更紧凑的代码!
我做了一篇关于使用FuncUnit here测试REST api的博客文章。
如果您需要一些测试和实施示例,可以查看我的github repository。
不要问问题,只需开始测试:)
答案 1 :(得分:2)
如果您了解jsTestDriver,我认为您已经找到了一个很好的解决方案?
您可以使用它在多个浏览器中自动启动测试并返回成功或失败。
这使得它与其他使用无头浏览器的工具区别开来,就像jsTestDriver一样,你在真正的浏览器中运行你的测试,这似乎符合你的要求。
jsTestDriver带有自己有限的断言框架,但你可以将其他人插入其中,包括QUnit,YUI和Jasmine。
你在上面谈到Jasmine,“我认为我不能做BDD,因为它是一个必须与各种网站合作的图书馆。”我不确定你的意思是什么?
Jasmine提供了所有断言,让您可以像QUnit一样进行测试。它还允许您“窥探”Ajax回调,拦截JSON以检查甚至更改它,然后将其传递给您的默认回调。有了这个,您可以检查JSON响应,然后在UI以正确的方式对其做出反应时再次检查。