阅读时间4分钟 (834个单词)

谷歌暑期代码计划:为什么JavaScript测试需要立即合并

GSoC: Why JavaScript Tests Need to be Merged Right Now

Joomla!中自定义JavaScript库的测试谷歌暑期代码项目即将完成。我们即将将它们合并到Joomla! CMS中。本文将讨论为什么这些测试需要尽快合并。

joomla right now meme

Joomla! CMS作为PHP编写的系统相当有名。但仍然有一些PHP本身无法解决的问题。作为服务器端脚本语言,PHP在客户端发生的事情上没有权威。因此,在涉及根据用户输入更改网页内容的情况下,PHP变得无助。

然而,这种功能是构建为用户提供动态和互动体验的Web应用的基础。这正是客户端脚本语言发挥作用的地方。JavaScript已成为最流行的客户端语言,很难找到一个不使用它的基于Web的系统。

Joomla JS ratio

作为一个大规模的内容管理系统,Joomla!大约7%的代码库是用JavaScript编写的。JavaScript处理各种任务,这些任务为Joomla! CMS添加了有价值的功能。随着时间的推移,这将进一步改善,因为JavaScript具有AJAX等丰富特性,并且有无数种方法可以进一步改进Joomla!。

例如,在Joomla!中有一个名为JCaption的自定义JavaScript库,它的编写是为了使开发者的生活更容易。每当需要为图像添加标题时,这个库会获取它的标题属性,并动态地在下面添加文本。

在核心.js JavaScript库中还可以找到这些有用的函数。Joomla.renderMessages执行所有动态的错误、警告或通知的渲染。它期望一个包含消息的对象,其余显示工作由它自己处理。如果没有这个库,开发者必须在每个需要界面显示消息的地方专门编写代码。

同样,在Joomla!代码库中有许多类似的JavaScript库,添加了大量的有用功能。在这种复杂性中,为了确保这些库按预期工作,不可避免地,测试成为一个严重的需求。

让我来告诉你为什么Joomla!需要覆盖JavaScript库的JavaScript测试至关重要。

以下是从Joomla问题跟踪器中的一些问题,如果对JavaScript库有全面的测试覆盖,这些问题本可以避免或以更少的努力解决。

https://issues.joomla.org/tracker/joomla-cms/10259

提交的问题涉及validate.js JavaScript库,该库基本上负责处理HTML表单的前端验证方面。问题是,尽管该库应该验证所有表单字段,即使它们放置在相关的表单标签之外,但库不会对它们进行验证。这个问题产生的原因是提交https://github.com/joomla/joomla-cms/commit/763c69f4bedc38f62ddf4f04af9d3d7fe3f3a719 从该库中删除了Mootools依赖。

现在假设我们有一个全面的测试套件,它涵盖了validate.js的功能。一旦进行Mootools删除的提交,Travis就会开始运行测试,并会对失败的测试用例进行抱怨。这样,提交Pull Request的人就会发现自己犯了什么错误,以及需要做什么来修复它。如果这样的话,问题#10259甚至不会出现,并且可以节省多个贡献者的大量时间和精力。

Joomla中的每个Pull Request都需要至少两个人成功测试后才能合并。在大多数问题中,可以清楚地观察到,需要多次修复和测试,直到问题完全解决。https://issues.joomla.org/tracker/joomla-cms/9243 就是这样一个例子。这有两个原因。一个是单个人无法查看和尝试所有可能的测试方式。另一个原因是,外人可能会注意到开发者忽略的事情。但即便如此,这个过程仍然消耗了大量的时间,有时他们发现的问题只是非常直接的问题。拥有一个全面的测试套件肯定可以大大减少这部分时间。

正如你所看到的,我们的JavaScript测试对Joomla!系统和其社区都有重大影响。这些测试对Joomla!来说如此重要,以至于我们有一个专门关注此的Google Summer of Code项目!好消息是我们已经打开了合并我们迄今为止编写的所有JavaScript测试到Joomla! CMS的Pull Request。可以从这里访问Pull Request。

请别忘了测试和尝试,并请提供你所有的反馈 :) 感谢!

《Joomla社区杂志》上的一些文章代表了作者对特定主题的个人观点或经验,可能并不与Joomla项目的官方立场一致。

0
GSoC: 在Joomla中创建草稿内容
Joomla! 认证项目状态
 

评论

已经注册?点击登录
暂无评论。成为第一个发表评论的人

通过接受,您将访问 https://magazine.joomla.net.cn/ 以外的第三方外部服务