我定义了一个async函数,其中包含await语句,并将其用作 pubsub 订阅消息的侦听器。想用玩笑来测试这个。但面临着一个问题。
代码:
const pubsubPull = () => {
const pubsub = new PubSub();
const subscription = pubsub.subscription("test-sub");
const handler = async message => {
try {
const payload = Buffer.from(message.data, "base64").toString();
const data = JSON.parse(payload).data;
await repository.insert(data);
message.ack();
} catch (err) {
console.log("error")
}
};
subscription.on("message", handler);
};
Run Code Online (Sandbox Code Playgroud)
测试:
jest.mock("@google-cloud/pubsub");
jest.mock("./repository");
describe("listener", () => {
const data = {
id: "3ce91594-f648-41bf-9a37-4fa09c4afb3b",
name: "ABCD",
value: 1234
};
const eventBuffer = Buffer.from(JSON.stringify(data));
const message = { …Run Code Online (Sandbox Code Playgroud)