我想做一个烟雾测试,以测试我的web应用程序和服务器之间的连接。有人知道怎么做吗?此外,我想做一个验收测试来测试我的整个应用程序。你推荐哪种工具?
我的技术堆栈是:主干网和require.js,jquery mobile和jasmine用于BDD测试。
问候
在进行BDD时,您应该始终嘲笑合作者。测试应该快速运行,不依赖于任何外部资源,如服务器、API、数据库等。
你想在f.e.Jasmine中找到的方法是宣布一个伪装成服务器的间谍。然后,您继续定义间谍在特定场景或示例中的反应。
如果您希望您的应用程序与环境无关,这是最好的方法。这在运行詹金斯工作时是非常需要的——围绕工作构建整个基础设施将很难复制。
制作代表服务器的spy/mock对象,并在您的规范中定义外部源的行为——这样您就可以专注于应用程序在特定情况下提供的行为。
这不是一个完整的答案,但我们为非常相似的堆栈使用的一个工具是mockJSON。这是一个jQuery插件,它同时做得很好:
- 拦截对URL的调用,而不是发回模拟数据
- 使得基于模板生成随机模拟数据变得容易
最好的部分是它完全是客户端的,所以你不需要设置任何外部的东西来获得不错的测试。它不会测试与服务器的实际网络连接,但它可以很好地验证服务器将要返回的数据类型。FWIW,我们使用Mocha作为我们的测试框架,并且在将其与我们的BDD工作集成时没有遇到任何困难。
原始的mockJSON repo仍然很好,尽管它已经有一段时间没有更新了。我和我的同事们一直在努力在我自己的fork中使用补丁和功能。
我发现了一篇博客文章,作者在其中解释了如何在rails应用程序之外使用水豚、黄瓜和硒,因此可以用来测试javascript应用程序。以下是链接:http://testerstories.com/?p=48