商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何利用Ubuntu进行JS测试

如何利用Ubuntu进行JS测试

  发布于2026-07-10 阅读(0)

扫一扫,手机访问

在Ubuntu上做Ja vaScript测试,这件事说难不难,说简单也不简单。关键在于先把环境搭好、框架选对,然后按部就班地写用例、跑测试、再持续优化。下面就以Jest和Mocha这两个主流框架为例,把整个流程拆开来讲清楚。

如何利用Ubuntu进行JS测试

一、前置准备:安装Node.js与npm

Ja vaScript测试跑在Node.js上,npm则是包管理工具。如果还没装,终端里敲两行命令就行:

sudo apt update && sudo apt install nodejs npm

装完后用 node -vnpm -v 确认版本。建议Node.js版本不低于14,否则可能遇到一些兼容性小麻烦。

二、选择测试框架

Ubuntu环境下主流的Ja vaScript测试框架有三类,各有侧重:

  • Jest:零配置,内置断言库和快照测试,前端项目(React、Vue)和Node.js后端都适用,开箱即用。
  • Mocha:灵活度高,支持异步测试,但需要搭配断言库(比如 chaiassert),更适合纯Node.js项目。
  • Jasmine:内置断言和 spies 功能,语法简洁,适合小型项目。

多数情况下推荐Jest,下面先以Jest为例详细演示,再单独讲Mocha的玩法。

三、以Jest为例的详细测试流程

1. 初始化项目

创建一个项目目录,初始化 package.json

mkdir js-test-project && cd js-test-project
npm init -y

2. 安装Jest

作为开发依赖安装:

npm install --sa ve-dev jest

3. 编写测试用例

先写一个被测模块 sum.js

// sum.js
function sum(a, b) {
  return a + b;
}
module.exports = sum;

再写测试文件 sum.test.js(Jest默认识别 *.test.js*.spec.js):

// sum.test.js
const sum = require('./sum');

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

test('adds -1 + 1 to equal 0', () => {
  expect(sum(-1, 1)).toBe(0);
});

4. 配置测试脚本

package.jsonscripts 字段里加一行:

"scripts": {
  "test": "jest"
}

5. 运行测试

终端执行 npm test,Jest会自动扫描所有匹配的测试文件并输出结果。通过、失败信息一目了然。

四、以Mocha为例的详细测试流程

如果更喜欢Mocha的灵活性,流程也是类似的:

1. 初始化项目与安装依赖

mkdir mocha-test-project && cd mocha-test-project
npm init -y
npm install --sa ve-dev mocha chai

chai 是Mocha常用的断言库,提供 expectassert 等断言风格。

2. 编写测试用例

被测模块 sum.js 同上。测试文件放在 test/sum.test.js(Mocha默认从 test 目录查找):

// test/sum.test.js
const assert = require('chai').assert;
const sum = require('../sum');

describe('Sum Function', () => {
  it('should return the sum of two numbers', () => {
    assert.strictEqual(sum(1, 2), 3);
    assert.strictEqual(sum(-1, 1), 0);
  });
});

3. 配置测试脚本

"scripts": {
  "test": "mocha"
}

4. 运行测试

npm test

Mocha会输出详细的测试结果,包括分组描述和断言是否通过。

五、优化测试体验

测试跑通了,但想让流程更完善,还有几个方向值得关注:

  • 生成测试覆盖率报告:Jest自带 jest --coverage,Mocha可以搭配 nyc npm test,输出HTML格式的覆盖率报告,一眼看出哪些代码还没被测试覆盖。
  • 持续集成(CI):把测试脚本集成到GitHub Actions、GitLab CI等工具中,每次提交代码自动跑测试,防止新代码搞坏旧功能。
  • 模拟与间谍:Jest用 jest.mock(),Mocha可以借助 sinon 库,模拟外部依赖(比如API请求),把测试范围限定在目标函数内部,避免外部环境干扰。

掌握了这些,在Ubuntu下做Ja vaScript测试就基本够用了。至于选Jest还是Mocha,看项目类型和个人偏好——前端项目直接上Jest省心,纯Node.js后端项目用Mocha可以获得更高自由度。关键还是要把测试用例写好,覆盖率提上去,再配合CI自动验证,代码质量自然会有保障。

本文转载于:https://www.yisu.com/ask/99253996.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注