美文网首页
写单测时,如何用Mock模拟取代原来的方法?

写单测时,如何用Mock模拟取代原来的方法?

作者: 喜悦的狮子 | 来源:发表于2020-08-13 23:41 被阅读0次
日更 1Day

序:

写单元测试就要做好隔离,节点、逻辑上做好隔离,接口上也做好隔离。
想想,如果每次单测都要跑那么多接口,万一性能不给力,一遍下来黄花菜都凉了。
所以我们就要用到 Mock,现在结合 Jest 来看看 Mock 是如何模拟方法的吧~

~/demo.js

// 引入 axios 包
import axios from 'axios'

// 导出 getName 方法
export const getName = () => {
  return axios.get('/').then(res => res.data) // 瞎写的地址
}

~/demo.test.js

正常情况下我们需要模拟真实的环境

import axios from 'axios'

test('测试 getName 方法是返回了帅b的名字'),() => {
  return getName().then(data => {
    expect(data).equal('石小阳') // 判断是否返回了帅b的名字
  })
}

~/Mock/demo.js

预备要狸猫换太子的函数,并且文件、方法起名保持一致。

export const fetchData = () => {
  return new Promise((resolved, reject) => {
    resolved(
       "石小阳" 
    )
  })
}

测试 x

~/demo.test.js

改造版的测试

jest.mock('./demo'); // 采取模拟,会自动到Mock文件下的同名文件下获取同名方法
// jest.unmock('./mock'); // 取消模拟
import { getName } from './demo'; // 引入方法
// const { getNumber } = jest.requireActual('./demo') // 要注意的是,如果同时有想要采取模拟和费采取模拟的两种方法,非采取模拟的方法就必须使用 jest.requireActual()来引入。

test('getName 测试', () => {
    return getName().then(data => {
      expect(data).toEqual('石小阳');
    })
})

测试通过✔

总结:

如果想要模拟方法
1、要准备好用备用的同名食材(方法)
2、使用jest.mock 全自动找到备用食材(方法)
3、如果部分要用原食材(方法),还可以使用 jest.requireActual()获取。

日常学习打卡交流请加入“小熊的技术小组”


相关文章

  • 写单测时,如何用Mock模拟取代原来的方法?

    序: 写单元测试就要做好隔离,节点、逻辑上做好隔离,接口上也做好隔离。想想,如果每次单测都要跑那么多接口,万一性能...

  • 使用Mockito模拟异常

    接下来我们将以MyDictionary类为例进行介绍 1 Mock对象模拟异常 1.1 方法返回类型非void 如...

  • python mock server实现:flask

    一、什么是mock mock,即模拟。模拟一个对象,模拟接口返回。 二、什么场景要用mock 1、单元测试: 由于...

  • PowerMockito使用方法和避坑指南

    常用方法 模拟对象 PowerMockito.spy(T object)可用于mock某个对象,调用该对象某个方法...

  • 什么是 Mock 测试?

    什么是 Mock? 作为动词,Mock 是模拟、模仿的意思。 作为名词,Mock 是能够模仿真实对象行为的模拟对象...

  • Android 单元测试

    测试代码中的方法没有被Mock 在写本地单测的时候,会遇到android.jar某个方法没有被Mock的情况,此时...

  • Mock测试

    初识mock 作为一个动词,mock是模拟、模仿的意思;作为一个名词,mock是能够模仿真实对象行为的模拟对象。 ...

  • 接口测试Mock与HttpClient

    1.Mock框架 1.1mock介绍: mock可以模拟接口测试,通过运行mock框架的jar,快速搭建接口测试。...

  • 软测扩充

    一、 mock 1. 什么是mock? ①测试桩:模拟被测对象的返回,用于测试②mock:通常指mock serv...

  • mock数据

    Vue中的mock数据指的是什么? mock数据指的模拟数据,mock中文翻译愚弄,嘲笑。 实现mock数据如下:...

网友评论

      本文标题:写单测时,如何用Mock模拟取代原来的方法?

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