0.0.5 • Published 3 years ago

@hyext-mock/sdk v0.0.5

Weekly downloads
1
License
ISC
Repository
-
Last release
3 years ago

mock-sdk

SDK 接口的模拟方案

Moker

一个单纯存储实现的模拟器,配合工厂模式去使用。

Constructor

constructor(implement) - 传入一个mock实现函数

API

  • mock.getMockImplement() - 获取内部mock实现函数。
  • mock.hack(cb) - 回调函数会传入一个内部mock实现函数,我们可以在函数中处理hack逻辑。

已模拟的接口

advance.sendWup

发送taf请求

API

  • createSendWupMocker(dataSource: DataSource): Mocker - 传入一个 dataSource 对象,创建一个sendWup mocker。

Params

// type decaration
type DataSource = {
  [key: string]: (req: any) => any
}

For example:

// for example
const dataSource = {
  fetchDataFnName: fetchDataFnImplementation
}

const sendWupMocker = createSendWupMocker(dataSource)
const impliment = sendWupMocker.getMockImplement()

Mock Impliment

sendWupMocker.getMockImplement()返回的impliment函数其接口与sendWup保持一致。

advance.onWupMessage

监听taf消息,基于onWupMessage接口封装的监听消息接口,可接受一个模拟事件配置队列, 底层依赖@hyext-mock/event-mock-excutor

API

  • createOnWupMessagesMocker(mockEventConfigQueue: MockEventConfigQueue): Mocker - 传入一个 mockEventConfigQueue队列,创建一个onWupMessages mocker。

Params

// type decaration
type MockEventConfig = {
  uri: string // 协议号 或 事件名
  workCount?: number // 触发次数, 默认 1
  data: GetData // 获取数据函数,传入一个workCount
  intervalTime?: number // 重复执行的间隔,默认 0
  delay?: number // 啥时候开始执行,默认 0
  disable?: boolean // 禁用这个事件, 默认 undfined
}

type MockEventConfigQueue = MockEventConfig[]

For example:

// for example
const mockEventConfigQueue = [
  // 延时1秒后执行2次,执行的间隔为1秒
  {
    uri: '666',
    data: jest.fn(v => v),// 模拟服务器数据
    workCount: 2,
    intervalTime: 1000,
    delay: 1000
  },
  {
    uri: '7758',
    data: jest.fn(v => v)
  },
]

const onWupMessagesMocker = createOnWupMessagesMocker(mockEventConfigQueue)
const impliment = onWupMessagesMocker.getMockImplement()
// do something by onWupMessagesMocker

Mock Impliment

onWupMessagesMocker.getMockImplement()返回的接口与原接口略所不同,详情如下:

type EventConfigQueue = {
  uri: string
  messageClass: any // 消息结构体
  handler: (data: any) => any // 数据处理函数
}

For example:

const onWupMessages = onWupMessagesMocker.getMockImplement()

onWupMessages([
  uri: '1123',
  messageClass: HUYA.xxxRsp,
  handler: (data) => {
    // do something with data
  }
])
0.0.5

3 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.1

4 years ago

0.0.2

4 years ago

0.0.1-beta.2

4 years ago

0.0.1-beta.1

4 years ago