Skip to content

Latest commit

 

History

History
146 lines (91 loc) · 3.33 KB

1.2.2 Jest 测试框架.md

File metadata and controls

146 lines (91 loc) · 3.33 KB

Jest 测试框架

install

npm install --save-dev jest

# package.json:

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

demo

#index.js

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


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

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  • npm run test
  • 测试后 Jest 将打印测试信息

api

  • describe 和 test 块的执行顺序:

Jest 会在所有真正的测试开始之前执行测试文件里所有的 describe 处理程序,当 describe 块运行完后,,默认情况下,Jest 会按照 test 出现的顺序依次运行所有测试;

注意顶级的beforeEach 会比 describe 中的beforeEach 执行的更早。 下面的代码也许能帮助你理解所有 hook 的执行顺序。

beforeAll(() => console.log('1 - beforeAll'));

afterAll(() => console.log('1 - afterAll'));

beforeEach(() => console.log('1 - beforeEach'));

afterEach(() => console.log('1 - afterEach'));

test('', () => console.log('1 - test'));

describe('Scoped / Nested block', () => {

    beforeAll(() => console.log('2 - beforeAll'));

    afterAll(() => console.log('2 - afterAll'));

    beforeEach(() => console.log('2 - beforeEach'));

    afterEach(() => console.log('2 - afterEach'));

    test('', () => console.log('2 - test'));

});

// 1 - beforeAll

// 1 - beforeEach

// 1 - test

// 1 - afterEach

// 2 - beforeAll

// 1 - beforeEach

// 2 - beforeEach

// 2 - test

// 2 - afterEach

// 1 - afterEach

// 2 - afterAll

// 1 - afterAll
  • 1.describe: 来将测试分组;

当 before 和 after 的块在 describe 块内部时,则其只适用于该 describe 块内的测试。


  • 2.test:test(name, fn, timeout),第一个参数是测试名称; 第二个参数是包含测试期望的函数

还有别名:it(name, fn, timeout)

  • 3.expect(value):

    • .toEqual()
    • .toBe(value)

断言函数

测试即运行结果是否与我们预期结果一致 断言函数用来验证结果是否正确

exspect(运行结果).toBe(期望的结果);
//常见断言方法
expect({a:1}).toBe({a:1})//判断两个对象是否相等
expect(1).not.toBe(2)//判断不等
expect({ a: 1, foo: { b: 2 } }).toEqual({ a: 1, foo: { b: 2 } })
expect(n).toBeNull(); //判断是否为null
expect(n).toBeUndefined(); //判断是否为undefined
expect(n).toBeDefined(); //判断结果与toBeUndefined相反
expect(n).toBeTruthy(); //判断结果为true
expect(n).toBeFalsy(); //判断结果为false
expect(value).toBeGreaterThan(3); //大于3
expect(value).toBeGreaterThanOrEqual(3.5); //大于等于3.5
expect(value).toBeLessThan(5); //小于5
expect(value).toBeLessThanOrEqual(4.5); //小于等于4.5
expect(value).toBeCloseTo(0.3); // 浮点数判断相等
expect('Christoph').toMatch(/stop/); //正则表达式判断
expect(['one','two']).toContain('one'); //不解释

jest+puppeteer UI 测试

参考