Unit testing GoLang Sarama消费者团体嘲笑

Unit testing GoLang Sarama消费者团体嘲笑,unit-testing,go,mocking,sarama,testify,Unit Testing,Go,Mocking,Sarama,Testify,我是新手,我也在努力模仿这个呼叫:sarama.NewConsumerGroup(brokers,group,config) 我正在使用“验证”,我的模拟代码当前看起来如下: type MyMockedObjectReciever struct { mock.Mock Receiver } func (m *MyMockedObjectReciever) mockCreateConsumer(brokers []string, group string, config *sar

我是新手,我也在努力模仿这个呼叫:
sarama.NewConsumerGroup(brokers,group,config)

我正在使用“验证”,我的模拟代码当前看起来如下:

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()
但我得到了一个错误:

--- 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

我相信我模拟的调用是错误的,但是现在确定还有什么可以做。

您可以像下面这样编写模拟消费者,以满足consumergroup对象的要求

// 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
}
//Consumergroup处理程序
类型testConsumerGroupHandler结构{
}
func(C testConsumerGroupHandler)Consume(ctx context.context,topics[]string,handler sarama.ConsumerGroupHandler)错误{
归零
}
func(C testConsumerGroupHandler)错误()