首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模拟PubSub发布方法

模拟PubSub发布方法
EN

Stack Overflow用户
提问于 2022-01-11 11:51:18
回答 1查看 541关注 0票数 0

我正在跟踪这个Mock new Function() with Jest来模拟PubSub,不幸的是没有运气。

代码语言:javascript
复制
jest.mock('@google-cloud/pubsub', () => jest.fn())

...

const topic = jest.fn((name) => ({ '@type': 'pubsub#topic', name }))
const publish = jest.fn((data) => ({ '@type': 'Buffer', data }))

const mockedPubSub = PubSub as jest.Mock<PubSub>
mockedPubSub.mockImplementation(() => ({ topic }))

我有两个错误。

第一个是线

代码语言:javascript
复制
PubSub as jest.Mock<PubSub>

将“

of PubSub”类型转换为“Mock”类型可能是一个错误,因为两种类型都没有与另一种类型充分重叠。如果这是有意的,首先将表达式转换为“未知”。

第二条在最后一条线

代码语言:javascript
复制
mockedPubSub.mockImplementation(() => ({ publish }))

参数类型'() => {发布: jest.Mock<{ '@ type ':jest.Mock<;data: any;},data: any>;}‘不能分配给类型的参数'(...args: any) => PubSub’。

我怎么能嘲笑这个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-11 12:04:38

找到答案

代码语言:javascript
复制
const mockTopic = jest.fn().mockImplementation(() => ({
  get: jest.fn(),
  publish: jest.fn(),
}));

const mockPublish = jest.fn();

jest.mock('@google-cloud/pubsub', () => ({
  __esModule: true,
  PubSub: jest.fn().mockImplementation(() => ({
    topic: mockTopic,
    publish: mockPublish,
  })),
}))
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70666327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档