阅读时间: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

作为一个大规模的内容管理系统,大约7%的Joomla代码库是用JavaScript编写的。JavaScript处理各种任务,这些任务为Joomla! CMS增加了有价值的特性。随着时间的推移,这将得到进一步改善,因为JavaScript拥有如AJAX等特性,并且有许多可能性可以进一步提高Joomla!的功能。

例如,Joomla中有一个名为JCaption的自定义JavaScript库,该库被编写以简化开发者的工作。每当需要为图像添加标题时,这个库就会获取其标题属性,并在其下方动态添加文本。

在core.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的测试,并会抱怨测试用例失败。这样,提出Pull Request的人将能够识别她或他所犯的错误以及需要做什么来修复它。如果这样的话,问题#10259甚至都不会出现,并且可以节省多位贡献者的大量时间和精力。

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

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

请别忘了测试和试用,并给出你任何反馈。谢谢!

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

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

评论

已经注册? 登录这里
尚未发表评论。成为第一个发表评论的人

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