简介
在过去的几年里,网络开发的编码技术已经发生了变化,开发人员已经开始采用各种JavaScript框架,因为它们具有多功能的特点,而不是像Java和PHP这样的传统编程语言。下一个大问题是如何测试在这些新框架上编写的代码。
你知道哪个是最好的JavaScript测试框架吗?几乎不可能说某个测试工具是最好的,但有几个名字如JEST、Mocha、Karma和AVA通常被认为是性能最好的。
大多数测试人员没有意识到AVA的力量。本文将解释AVA的基础知识,帮助你了解它的不同功能,包括如何创建测试案例文件。这可以帮助你为你的特定测试案例选择正确的工具。
除了AVA之外,我还将谈论提示和XO,一个新的提示工具。这篇文章应该让你更好地了解什么是提示,以及它在测试中的好处。
AVA
AVA是一个开源的Node.js测试运行器,它使代码测试变得简单方便,测试案例更加稳定、可读和有组织。它是由Sindre Sorhus和Kevin Mårtensson在2014年开发的。
AVA为测试用例提供了详细的错误输出,它有一个名为 “Magic assert “的功能,可以处理错误并以简单而丰富的方式显示。它还支持新的语言功能。它给了测试人员完全的控制权,其简单的语法使它相对于同类的其他工具来说很受欢迎。
AVA的特点
下面列出了AVA的一些最佳功能。
平行测试运行
AVA默认以并行方式执行测试用例,与其他工具相比,花费的时间更少。并行运行迫使测试人员确保所有的测试都是完全独立的,这始终是一个好的做法。
只有一个
AVA的另一个伟大的特点是,你可以选择只运行你正在进行的一个测试。如果你有一些失败的测试案例,而你想一个一个地修复它们,这很有用。
观察模式
AVA能够识别受影响的测试文件,并且只在这些特定文件中重新运行测试。这是由于 “观察模式 “的功能,它是非常奇妙的。如果你改变一个测试用例文件,它将只重新运行该文件。如果你改变一个源文件,它将重新运行所有依赖它的测试案例。
插件支持
AVA包含自己的插件,旨在为不同的使用情况进行灵活配置。
过程隔离功能
对于每个测试文件,AVA启动一个新的Node.js进程,这意味着你可以安全地修改全局状态而不影响不相关的测试。它还可以完全运行多个测试文件,每个文件都在自己的进程中。
可观察的支持
可观察支持是一种数据类型,可用于模拟基于推送的数据源,如套接字、DOM事件和定时器间隔等。如果你想发射一堆流式数据值,最好使用它。它可以与高阶组合组成,并且在观察者订阅之前不会开始发射数据。
编辑器插件
AVA有许多插件可以与不同的文本编辑器连接,如Sublime、Atom和VS Code。
AVA的劣势
和每个工具一样,AVA也有一些缺点。
其中一个主要的缺点是,AVA不支持浏览器测试,这可能会限制它的使用情况。幸运的是,AVA的开发团队正在努力解决这个问题。
AVA也没有对DOM的任何内置支持。而且由于它是一个相对较新的工具,Ava仍然有很多开放性问题。
社区仍在成长,但它仍然很小,所以与其他测试框架相比,文档或教程较少。
安装AVA
AVA的安装过程很快,你只需要遵循几个简单的步骤。在你开始之前,你必须安装Node.js,以便安装AVA。
然后,在命令提示符中输入这段代码。
mkdir ava_folder
cd ava_folder
npm init ava
复制代码
这将创建一个名为ava_folder
的文件夹。接下来的一行代码cd ava_folder
,将移到该文件夹内,最后一条命令将安装AVA。该文件夹中会有一些新的文件。
为了验证安装,打开package.json
文件,如果它包含下面的代码(除了版本),一切都应该被设置好。
如果你喜欢使用yarn,那么就按照下面的命令进行。
yarn add ava --dev
复制代码
你也可以用下面的命令手动安装AVA。
npm install --save-dev ava
复制代码
创建你的测试文件
要创建测试文件,请打开安装AVA的根目录,并创建一个文件,名称为SampleTest.js
。
在该文件中写入以下代码,只是为了测试的目的。
const SampleTest= require('ava');
SampleTest('foo', t => {
t.pass();
}
);
SampleTest('bar', async t => {
const bar = Promise.resolve('bar');
t.is(await bar, 'bar');
});
复制代码
运行测试文件
一旦测试文件被创建,下一个问题就是如何执行它们。你可以使用下面的命令来执行。
npm SampleTest
复制代码
如前所述,AVA有一个智能观察模式。要在启用观察模式的情况下运行测试,请使用下面的命令。
npx ava --watch
复制代码
向测试文件传递参数
AVA提供了一个选项,可以向测试文件传递命令行参数。
在通过npm脚本调用AVA时,你需要两个--
参数终止符。
npm SampleTest -- -- --hello world
复制代码
XO
XO是一个强大的刷新工具。如果你对提示工具不熟悉,不用担心,我会在这里解释它们。
提示工具通过分析源代码来标记编程错误、bug、文体错误和可疑的结构,帮助你改进你的代码。提示工具可以使你和你的代码更有效率,节省你的时间和金钱。
XO的特点
XO因其众多功能而成为造林者中最受欢迎的选择之一。它可以避免和控制编写JavaScript代码时在语法上的愚蠢错误。将XO添加到项目文件夹中是一个简单的任务,只需执行一个单行命令就可以实现。
其中一个最好的特点是,它通过简单的命令xo --fix
,自动修复了许多问题。
XO的另一个伟大的品质是,它支持不同的插件。一些编辑器插件包括Sublime Text, Atom, Vim, TextMate 2, VSCode, Emacs, 和WebStorm。XO还支持ESLint插件,如unicorn
、import
、ava
、node
,以及更多。
XO支持TypeScript文件(.ts,.d.ts和.tsx)。假设你有很多文件需要配置–不需要指定文件路径给lint,因为XO会自动lints所有的.js文件(除了通常被忽略的路径)。
XO在数据库方面有主要的支持。它可以为数据库模式或自定义查询生成Go代码。它是一个命令行工具,通过使用元数据和SQL自省查询来识别模式中的类型和关系,并针对发现的关系应用一套标准的Go模板。
目前,它可以为PostgreSQL、Oracle、MySQL、Microsoft SQL Server和SQLite3等不同数据库生成表、存储过程、枚举和自定义SQL查询的类型。
安装XO
XO需要Node.js,所以建议在安装XO之前先安装Node.js。
要通过控制台安装,使用下面的命令。
npm install — global xo
复制代码
你也可以在命令提示符下使用下面的命令手动安装XO。
npm init xo
复制代码
一旦它被安装在一个特定的目录中,找到package.json文件。如果该文件包含与下图相同的代码(除了版本),则安装成功。
使用XO进行代码测试
在本节中,你将学习如何使用XO测试Node.js代码。为了演示,我们将为一个将两个数字相加的应用编写测试案例,并使用Visual Studio插件来运行测试。
首先,创建一个文件夹,在其中编写代码。在下面的截图中,你可以看到我创建了一个文件夹,名称为TESTSAMPLEXO
。
在Visual Studio的终端运行以下命令。
Npm init -y
复制代码
一旦上述命令被执行,package.json
文件应该看起来像这个截图。
现在,在前面的步骤中创建的同一文件夹中,创建一个测试文件sum.js
。它应该看起来像这样。
下一步是在目录(TESTSAMPLEXO
**)**中添加XO。要做到这一点,执行以下命令。
npm init xo
复制代码
在同一目录下还需要创建一个文件,名称为sum.text.js
(在我的例子中)。编写测试案例,如下图所示。
最后,是执行测试命令的时候了。使用下面的语法来执行测试用例。
npm test
复制代码
如果在运行命令时出现错误,按照所示说明逐一清除它们。
每次清除错误后,你必须在命令提示符或终端执行命令npm test
,测试输出将显示如下。
结论
在这篇文章中,你了解了AVA,一个JavaScript的测试工具,和XO,一个刷新工具。现在你已经熟悉了这些工具的力量。
XO是一个有用的工具,它可以改进和完善代码,并在它们变成更大的问题之前捕捉到bug。
正如前面所解释的,AVA确实值得一试。它结合了Jasmine的易用性和Tape的简单性。它同时支持前端和后端的JavaScript应用程序,可以使测试JS代码变得轻而易举。
The postCode testing and linting using AVA and XOappeared first onLogRocket Blog.