如何存根属于外部依赖项中的类的函数?

问题描述 投票:0回答:1

我想测试一个用 Typescript 编写的 Google Cloud 函数,该函数调用 Topic 类的成员函数 publishMessage如何进行单元测试捕获传递给

publishMessage
的参数以便我可以验证它?

我试图了解如何使用 sinonproxyquire 来完成此操作,但所有示例都使用 javascript 的

require()
和/或存根模块级静态函数。我不明白这如何映射到使用 Typescript 的
import
以及对类内部的方法进行存根。

我想测试的代码看起来像这样:

import {PubSub} from "@google-cloud/pubsub"

class Foo {
    private pubSub = new PubSub()
    private topic = this.pubSub.topic("foo-topic")

    public publishMessage() {
        const data = Buffer.from("content")
        return this.topic.publishMessage({data})
    }
}

const foo = new Foo()

// This function is what the test will have access to and operate on.
export const fooPublishMessage = foo.publishMessage

以防万一,我正在使用摩卡和柴进行测试,但我还没有与他们结婚。

typescript google-cloud-functions sinon proxyquire
1个回答
0
投票

你不知道。谷歌已经解决了这个问题。他们对自己的东西进行单元测试。

我认为您想问的问题是,当我的组件依赖于另一个组件时,我该如何测试它。好吧,您知道 PubSub 返回类型。我确信您可以模拟它并自己进行测试。没有?

© www.soinside.com 2019 - 2024. All rights reserved.