gpt4 book ai didi

unit-testing - 如何在 go 中测试 pubsub 消息确认?

转载 作者:行者123 更新时间:2023-12-01 22:13:47 25 4
gpt4 key购买 nike

如何编写一个单元测试来验证消息是否真的被确认了?

我想模拟 pubsub 消息并验证 Ack被调用但不知道如何调用。

func processMessage(ctx context.Context, msg *pubsub.Message) {
log.Printf("Processing message, data: %s", msg.Data)
msg.Ack()
}

最佳答案

您可以通过使用接口(interface)和模拟来做到这一点,如下所示。

// Create an interface that'll be implemented by *pubsub.Message
type message interface{
Ack()
}

// Accept the interface instead of the concrete struct
func processMessage(ctx context.Context, msg message) {
log.Printf("Processing message, data: %s", msg.Data)
msg.Ack()
}

现在,在测试文件中,创建一个模拟消息并确认 Ack正在被调用。您可以使用 testify/mock为了那个原因。

关于unit-testing - 如何在 go 中测试 pubsub 消息确认?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61934473/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com