我想尝试在我们的Web应用程序中实现一些TDD,以减少回归并提高发行质量,但我不相信自动化测试在与Web应用程序一样蓬松的性能上能表现得如何。
我已经阅读并尝试了TDD和单元测试,但是示例都是“可靠的”,并且是诸如货币转换器之类的简单功能。
是否有任何资源可以帮助进行单元测试内容管理和发布系统?如何对购物车/商店(实物和在线产品)进行单元测试?AJAX?
谷歌搜索“ Web测试驱动开发”只是几年前的老文章,要么涉及类似计算器功能的示例,要么讨论为什么TDD比任何东西都要好(没有任何示例)。
我想尝试在我们的Web应用程序中实现一些TDD,以减少回归并提高发行质量,但我不相信自动化测试在与Web应用程序一样蓬松的性能上能表现得如何。
我已经阅读并尝试了TDD和单元测试,但是示例都是“可靠的”,并且是诸如货币转换器之类的简单功能。
是否有任何资源可以帮助进行单元测试内容管理和发布系统?如何对购物车/商店(实物和在线产品)进行单元测试?AJAX?
谷歌搜索“ Web测试驱动开发”只是几年前的老文章,要么涉及类似计算器功能的示例,要么讨论为什么TDD比任何东西都要好(没有任何示例)。
Answers:
大免责声明:我尚未构建任何Web应用程序,也未测试任何Web应用程序。以下只是我在信息领域内随意走动时所吸收的信息小知识。
以这样一种方式构造您的Web应用程序,使其能够独立测试业务规则。如果您发现自己通过用户界面测试业务规则,那么可能是时候考虑重新设计了。
在测试UI时,请以可预测的方式响应的模拟实现替换您的业务规则。
以上两个规则摘自Bob Martin在RailsConf 2010上的演讲。演讲不是关于TDD的,而是他提到测试的部分简短而中间。
有一些工具,例如JsUnit,JSSpec,YUI Test(用于测试JavaScript)和Selenium和Watir(用于测试UI)。
在务实的书架有几本书涵盖了Web应用程序测试。在http://www.pragprog.com/categories/design上标记有Testing的书籍清单。Pragmatic Bookshelf Web应用程序测试书籍主要针对Ruby和Rails,但应该普遍适用。
测试驱动JavaScript开发是克里斯蒂安·约翰森(Christian Johansen)的一本非常不错的书,该书是Sinon.js和Buster.js的开发人员,涵盖了诸如以下主题(来自网站):
- 了解单元测试和TDD
- 选择正确的单元测试框架
- 构建更清洁的API,模块化且强大的JavaScript
- 通过重构不断改进代码
- 五个实用的TDD会话:Ajax,DOM操作,Node.js等
- 针对不熟悉Java语言的开发人员的测试驱动之旅
当前,我们将Sinon.js与Mocha结合使用,但由于其功能非常整洁,因此可以切换到Buster.js!
我已经编写了有关使用Python + Django进行Web开发的TDD的书。它涵盖了TDD,包括端到端/功能测试(硒)和较低级别的“单元”测试。我还介绍了现代开发人员实践,例如如何将git集成到您的工作流中,如何部署到服务器上并对其进行自动化和测试,持续集成,模拟和测试隔离以及许多其他方面: