美文网首页
11|通过对类的Mock理解单元测试和集成测试

11|通过对类的Mock理解单元测试和集成测试

作者: 雪燃归来 | 来源:发表于2020-05-24 16:28 被阅读0次

一、单元测试

(一)、单元测试的思考

      单元测试的重点是:只对当前单元里的代码做测试,里边引入的外部文件并不关心,如果外部的代码引入造成了性能损耗,我们就是使用更简单的东西代替它,让我们的单元测试执行起来更快、更顺畅。所以在单元测试中我们就可以使用各种各样的mock实现我们的测试。

(二)、代码部分

1、创建测试工具类 util.js

class Util {
    a(){
        // .....很复杂的逻辑代码
    }
    b(){
        // .....很复杂的逻辑代码
    }
}

export default Util;

2、创建测试工具类的测试实例 util.test.js

import Util from './util'
test('测试Util类的a方法', () => {
    //expect(Util.a()).toBe()
})
test('测试Util类的b方法', () => {
    //expect(Util.b()).toBe()
})

3、Util作为外部资源时,做单元测试(demo.js)

import Util from './util'
const demoFunction = (a, b) => {
    const util = new Util();
    util.a(a);
    util.b(b)
}
export default demoFunction;

4、对demo.test.js

jest.mock('./util')
// jest.mock发现util是一个类,会自动把类的构造函数和方法变成 jest.fn()
// const Util = jest.fn()
// Util.a = jest.fn()
// Util.b = jest.fn()
import Util from './util'
import demoFunction from './demo'
test('测试 demoFunction', () => {
    demoFunction();
    expect(Util).toHaveBeenCalled();
    expect(Util.mock.instances[0].a).toHaveBeenCalled()
    expect(Util.mock.instances[0].b).toHaveBeenCalled()
})

三、使用mocks自定义单元测试

mocks/util.js

const Util = jest.fn(() => {
    console.log('constructor --')
})
Util.prototype.a = jest.fn(() => {
    console.log('function a --')
})
Util.prototype.b = jest.fn(() => {
    console.log('function b --')
})

export default Util;

相关文章

  • 11|通过对类的Mock理解单元测试和集成测试

    一、单元测试 (一)、单元测试的思考 单元测试的重点是:只对当前单元里的代码做测试,里边引入的外部文件并不关心,如...

  • 一篇文章让你了解基于Spring的测试

    针对Spring某个类及方法的单元测试,结合单元测试框架(比如JUnit)和Mock的框架(比如EasyMock)...

  • iOS单元测试

    一、前言 在之前的单元测试的过程中,由于对单元测试的概念没有足够的理解,所以舍本逐末,造成了把单元测试和集成测试混...

  • 软件测试基础-软件测试阶段

    软件测试阶段 单元测试集成测试系统测试验收测试 单元测试 什么是单元测试呢? 我理解的单元测试是最小力度的测试,可...

  • Day19 - Flutter - 测试用例

    概述 单元测试 Widget测试 集成测试 一、单元测试 单元测试是针对一个函数或者类进行测试 1.1、添加测试依...

  • 软件测试系列一软件测试基础

    最关键价值 :业务知识、对客户的理解和把握、对客户的沟通单元测试 :开发人员完成集成测试 :主要测试接口项...

  • Mock测试

    简介 SpringMVC单元测试的独立测试;对模块进行集成测试时,希望能够通过输入URL对Controller进行...

  • 软件测试读书笔记(佟伟光著)4

    软件测试过程 软件测试过程包括单元测试、集成测试、系统测试和验收测试。 单元测试 单元测试是对软件设计的最小单元—...

  • 软件测试的分类(一)

    按测试阶段来分类 单元测试,集成测试,系统测试,验收测试 单元测试1.什么是单元测试?对软件中的进行检查和验证。 ...

  • Android测试

    单元测试: 本地单元测试 仪器单元测试集成测试: 测试不易交互的部件: service和contentProvid...

网友评论

      本文标题:11|通过对类的Mock理解单元测试和集成测试

      本文链接:https://www.haomeiwen.com/subject/hlhjahtx.html