首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GoLang Sarama ConsumerGroup嘲弄

GoLang Sarama ConsumerGroup嘲弄
EN

Stack Overflow用户
提问于 2020-06-15 15:40:27
回答 1查看 991关注 0票数 0

我是新来的,我也在努力模拟这个电话:sarama.NewConsumerGroup(brokers, group, config)

我使用的是指证,我的模拟代码现在看起来如下:

代码语言:javascript
复制
type MyMockedObjectReciever struct {
    mock.Mock
    Receiver
}

func (m *MyMockedObjectReciever) mockCreateConsumer(brokers []string, group string, config *sarama.Config) (sarama.ConsumerGroup, error) {
    args := m.Called(brokers, group, config)
    return args.Get(0).(sarama.ConsumerGroup), args.Error(1)
}

// mock connection and subscribe
        wantConsumer := sarama.NewConsumerGroup
        createConsumer = c.mockCreateConsumer
        c.On("mockCreateConsumer", []string{testBrokers}, testGroup, wantConfig).Return(wantConsumer, nil).Once()

但我知道错误是:

代码语言:javascript
复制
--- FAIL: TestKafkaReceiver (0.00s)
    --- FAIL: TestKafkaReceiver/test_a_Kafka_receiver (0.00s)
panic: interface conversion: func([]string, string, *sarama.Config) (sarama.ConsumerGroup, error) is not sarama.ConsumerGroup: missing method Close [recovered]
    panic: interface conversion: func([]string, string, *sarama.Config) (sarama.ConsumerGroup, error) is not sarama.ConsumerGroup: missing method Close

我想我是在不正确地嘲弄这个电话,但现在我知道还能做些什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-18 00:45:04

您可以在下面这样编写模拟使用者,这将满足使用者组对象。

代码语言:javascript
复制
// Consumergroup handler
type testConsumerGroupHandler struct {
}

func (C testConsumerGroupHandler) Consume(ctx context.Context, topics []string, handler sarama.ConsumerGroupHandler) error {
    return nil
}
func (C testConsumerGroupHandler) Errors() <-chan error {
    return nil
}
func (C testConsumerGroupHandler) Close() error {
    return nil
}

之后,您应该编写成功和失败的方法,并相应地设置模拟测试。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62391830

复制
相关文章

相似问题

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