Loading

4,JavaScript-Web开发-mocha(测试)

测试驱动开发 TDD

Test-Driven Development

测试用例放在测试模块里,完成单元测试

以测试为驱动的开发模式:确保一个程序模块的行为符合设计的测试用例。

mocha:JavaScript 的一种单元测试框架,特点:

  • 测试简单JavaScript函数 && 异步代码
  • 自动运行所有测试 || 只运行特定测试
  • 支持before,after,beforeEach和afterEach来编写初始代码
mocha test 工程结构
hello-test\
|
+-  .vscode/
|   |
|   +-  lanuch.json
|
+-  hello.js       <-- 待测试模块
|
+-  test/          <-- 存放所有test
|   |
|   +-  hello-test.js  <-- 测试模块
|
+-  package.json    <-- 项目描述文件
|
+-  node_modules/   <-- npm安装的所有依赖包
安装mocha

项目描述文件添加 "devDependencies":{"mocha":"3.0.2"}

  • npm install 通过项目描述文件添加依赖包
  • npm install -g mocha 不推荐,尽量不要安装全局模块(会影响所有的Node.js工程)
const assert = require('assert');

const sum = require('../hello');
describe('#hello.js', () => {
    describe('#sum()', () => {
        it('sum() should return 0', () => {
            assert.strictEqual(sum(), 0);
        });
        it('sum(1) should return 1', () => {
            assert.strictEqual(sum(1), 1);
        });
        it('sum(1, 2) should return 3', () => {
            assert.strictEqual(sum(1, 2), 3);
        });
        it('sum(1, 2, 3) should return 6', () => {
            assert.strictEqual(sum(1, 2, 3), 6);
        });
    });
});

describe可任意嵌套,看成一组测试

it("name",function(){...} 代表一个测试

运行测试(必须是test文件夹?!)
  • node node_module/../mocha 寻找test文件夹下的模块测试
  • package.json添加npm命令
    • "scripts":{"test":"mocha"}
    • 工程目录下执行npm test
  • 创建配置文件.vscode/launch.json
    • 添加Test配置选项
    •         "name": "test",
              "type": "node",
              "request": "launch",
              "program": "${workspaceRoot}/node_modules/mocha/bin/mocha",
              "env": {
                  "NODE_ENV":"test"
              }
          }
      
before 和 after

测试前初始化资源 测试后释放资源

  • before
  • after
  • beforeEach
  • afterEach

每一组test执行前后会分别执行before()和after()

  每一个testh执行前后会分别执行beforeEach()和afterEach()

posted @ 2025-03-12 22:35  一起滚月球  阅读(12)  评论(0)    收藏  举报