js项目集成jasmine测试的核心是搭建轻量可运行环境,需按序加载jasmine.js、jasmine-html.js、boot.js及被测代码,配合describe/it结构和expect断言编写用例。

JS 项目中集成 Jasmine 进行断言测试,核心是搭建轻量、可运行的测试环境,不依赖构建工具也能快速验证逻辑。关键在于文件加载顺序、测试结构规范和断言写法清晰。
准备 Jasmine 运行所需文件
从 Jasmine 官方发布页 下载最新 dist 包(如 jasmine-5.1.0.zip),解压后提取以下必需文件:
- jasmine.js:框架核心,必须最先加载
- jasmine-html.js:负责在浏览器中渲染测试结果 UI
- boot.js:启动脚本,必须放在 jasmine.js 之后、测试代码之前
- jasmine.css:美化测试报告样式(可选但推荐)
将这四个文件统一放入项目中的 test/lib/ 目录下,便于管理。
编写被测代码与测试用例
假设你有一个简单工具函数 mathUtils.js:
function add(a, b) { return a + b; }
function isEven(n) { return n % 2 === 0; }
在 test/spec/mathSpec.js 中编写对应测试:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
describe('mathUtils', function() {
it('should add two numbers correctly', function() {
expect(add(2, 3)).toBe(5);
expect(add(-1, 1)).toBe(0);
});
it('should identify even numbers', function() {
expect(isEven(4)).toBe(true);
expect(isEven(3)).toBe(false);
});
});
注意:describe 定义测试集,it 定义单个用例,expect(...).toBe(...) 是最常用断言,检查严格相等。
创建 HTML 入口页面运行测试
新建 test/SpecRunner.html,按顺序引入所有资源:
<meta charset="utf-8"><title>Jasmine Spec Runner</title><link rel="stylesheet" href="lib/jasmine.css"><script src="lib/jasmine.js"></script><script src="lib/jasmine-html.js"></script><script src="lib/boot.js"></script><script src="../src/mathUtils.js"></script><script src="spec/mathSpec.js"></script>
打开该 HTML 文件,即可在浏览器中看到绿色通过或红色失败的测试报告,点击用例还能查看堆栈详情。
常见断言类型与写法提示
Jasmine 提供丰富匹配器(matchers),避免手动 if 判断。常用有:
-
expect(x).toBe(y):严格相等(===) -
expect(arr).toEqual([1,2,3]):深度相等(适合对象/数组) -
expect(fn).toThrow():验证是否抛出错误 -
expect(str).toMatch(/hello/i):正则匹配 -
expect(promise).toBeResolved()(Jasmine 5+):支持 Promise 断言
所有断言都应放在 it 函数内,每个 it 应聚焦单一行为,失败时能立刻定位问题点。










