我想测试一个用 Typescript 编写的 Google Cloud 函数,该函数调用 Topic 类的成员函数 publishMessage。 如何进行单元测试捕获传递给
publishMessage
的参数以便我可以验证它?
我试图了解如何使用 sinon 或 proxyquire 来完成此操作,但所有示例都使用 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
以防万一,我正在使用摩卡和柴进行测试,但我还没有与他们结婚。
你不知道。谷歌已经解决了这个问题。他们对自己的东西进行单元测试。
我认为您想问的问题是,当我的组件依赖于另一个组件时,我该如何测试它。好吧,您知道 PubSub 返回类型。我确信您可以模拟它并自己进行测试。没有?