React-8 Mock测试

489 阅读1分钟

单元测试

  • 单元
    • 程序中执行某一特定任务的具有一定独立性的代码模块
  • 单元测试
    • 测试某一独立的代码模块的测试

做单元测试的时候,一定要分清楚被测试对象的职责是什么 如果方法1依赖了方法2

  • 依赖形如
graph TD         
Dependent-Module-依赖 & Input --> Function-单元 --> Output

Mock Function

  • 设置返回值
const mockCallback = jest.fn();
mockCalback.mockReturnValue(true);
  • 模拟函数实现
const mockCallback = jest.fn();
mockCalback.mockImplementation(()=>true);
  • 验证函数被调用情况
//验证函数被调用了
expect(mockCallback).toHaveBeenCalled();
//验证函数被调用了多少次
expect(mockCallback).toHaveBeenCalledTimes(4);
//验证函数被调用时的参数是什么
expect(mockCallback).toHaveBeenCalledWith(2);
  • 声明Mock Function

    • 位置
      • 在describe之上添加声明的方法
    • 代码
    jest.mock("./verify")
    

    声明后方可调用模块。自定义组件要写路径

  • 测试 Async/Await语法

test('...', asyn ()=> {
  await expect((fetchData)).resolves.toBe('...');
})
test('...', asyn ()=> {
  await expect((fetchData)).rejects.toThrow('error');
})