内容管理系统测试
从早期的Mambo时代到今天,Joomla!不断改进和扩展了功能。Joomla! 1.5将质量和用户体验提升到了更好的水平,这一点在2.5版本中也得到了体现。转移到GitHub使得贡献更容易,也更便于了解不同开发者正在做什么。现在,更多的关注点转向下一个逻辑步骤:自动化测试。
过程
在Joomla!中,我们目前使用三种类型的测试。
单元测试 – 在最低可能级别上测试小块代码(单元),通常为方法,不包括其他类或方法。这些测试确保方法按预期执行。
集成测试 – 测试两个或多个单元的集成。这些测试覆盖了多个单元之间的交互。
系统测试 – 测试整个系统。通过浏览器测试应用程序属于这一组。
为了确保Joomla!的整体质量,需要超过90%的单元测试覆盖率。当前的代码库并不总是允许单元测试。由于当前对象之间的紧密耦合,我们通常局限于集成和系统测试。
测试驱动开发
对于未来,必须将测试驱动开发作为目标,即,开发者首先编写单元测试来记录预期行为,然后实现代码。这样,就可以保证非常高的单元测试覆盖率。代码库的演变将不再破坏现有功能,因为这将立即被发现。
可测试的对象
利用依赖注入代替目前的高度耦合,将能够在整个项目中进行单元测试。实现这一点的一个简单方法是将JFactory的方法改为非静态的,并将工厂的实例作为参数传递。这样,注入一个提供测试用例的模拟工厂就不再是问题。
无测试 – 无修复
要修复一个错误,必须编写一个测试来重现问题。理想情况下这将是一个单元测试,但通常这将导致系统测试。然后创建一个解决方案来使测试成功,从而证明修复。
CMS单元测试工作组
该平台在为代码添加自动化测试覆盖率方面做得非常出色。在Joomla! 3.0中,我们的目标是同样引入CMS的自动化测试。在接下来的几周内,由Michael Babker协调的CMS单元测试工作组将着手建立以3.0版本为基础的CMS测试环境,以开发测试结构。
撰写和贡献测试的指南,包括一些教程,将在设置准备就绪后发布在维基百科上。
如果您想加入这一努力,您只需要一个GitHub账户,这样您就可以关注或fork存储库,并通过发送带有您贡献的pull请求来参与。
在Joomla社区杂志上发表的一些文章代表了作者在特定主题上的个人观点或经验,可能与Joomla项目的官方立场不一致。
通过接受,您将访问由https://magazine.joomla.net.cn/之外第三方提供的服务的链接
评论