Chai 中文文档 下载 App

浏览器端引入 Chai - script 标签、AMD、UMD 三种方式

支持的浏览器版本

Chai 官方声明支持:

注意:`should 风格在 IE9 下不兼容,详见 常见陷阱 中关于 IE9 兼容性的说明。

方式一:script 标签直接引入

最简单的方式,直接在 HTML 中引入构建好的 chai.js:

<script src="chai.js" type="text/javascript"></script>
<script>
  // chai 作为全局对象
  var expect = chai.expect;
  expect(1 + 1).to.equal(2);
</script>

获取 chai.js 的途径:

方式二:AMD / RequireJS

如果你用 RequireJS 或其他 AMD 加载器:

define(['chai'], function (chai) {
  var expect = chai.expect;
  expect('hello').to.be.a('string');
});

Chai 的 UMD 构建会自动检测 define 函数,存在时注册为 AMD 模块。

方式三:Browserify / Webpack / Vite

现代前端打包工具都能正确处理 Chai 的 CommonJS / ESM 入口:

// Webpack / Vite 中
import { expect } from 'chai';
expect([1, 2, 3]).to.have.lengthOf(3);

方式四:测试框架集成

Karma

Karma 可以直接加载 node_modules 里的 chai:

// karma.conf.js
module.exports = function (config) {
  config.set({
    frameworks: ['mocha', 'chai'],
    files: [
      'node_modules/chai/chai.js',
      'node_modules/mocha/mocha.js',
      'test/**/*.test.js'
    ]
  });
};

Jest

Jest 内置了自己的 expect,但如果你更喜欢 Chai 风格,也可以在 Jest 配置中引入:

// jest.config.js
module.exports = {
  setupFilesAfterEach: ['<rootDir>/setup-chai.js']
};

// setup-chai.js
require('chai/register-should');

验证浏览器端安装

在 HTML 文件中写:

<!DOCTYPE html>
<html>
<head>
  <title>Chai 浏览器测试</title>
</head>
<body>
  <div id="mocha"></div>
  <script src="chai.js"></script>
  <script src="mocha.js"></script>
  <script>mocha.setup('bdd');</script>
  <script>
    var expect = chai.expect;

    describe('简单断言', function () {
      it('1 + 1 应该等于 2', function () {
        expect(1 + 1).to.equal(2);
      });
    });

    mocha.run();
  </script>
  <link rel="stylesheet" href="mocha.css">
</body>
</html>

用浏览器打开这个文件,Mocha 的测试报告界面会显示测试结果。

本地点文件 vs 构建产物

下一环节

浏览器端的更多细节和注意事项,继续看 第一个断言 写出第一条断言。