【发布时间】:2020-06-15 15:40:27
【问题描述】:
我是 Go 新手,我也在努力模拟呼叫:sarama.NewConsumerGroup(brokers, group, config)
我正在使用 testify,我的模拟代码目前看起来像:
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
我相信我错误地嘲笑了电话,但现在确定还能做什么。
【问题讨论】:
标签: unit-testing go mocking sarama testify