问题
我正在尝试对发送整数的卡夫卡生产者进行单元测试。运行单元测试时,我可以看到输出表明我的生产者和消费者在控制台中正常工作。也就是说,生产者发送零值,消费者接收零值,并将该整数与运行总计相加。
sending data = 0
received content = 0
sending total = 0
Run Code Online (Sandbox Code Playgroud)
然而,当测试 ConsumerRecord 返回空条目时,单元测试最终失败。我猜监听器根本就没有工作。
java.lang.AssertionError:
Expected: a ConsumerRecord with value 0
but: is null
Run Code Online (Sandbox Code Playgroud)
问题
我定义容器/消息监听器的方式是否有错误?或者我的单元测试有更根本的错误?
这个url包含我的生产者/配置和消费者/配置的代码。在那里查看它可能比在这里让代码部分变得更大更容易。
https://github.com/ewingian/RestCalculator/tree/master/src/main/java/com/calculator/kafka
单元测试
package com.calculator;
/**
* Created by ian on 2/9/18.
*/
import com.calculator.kafka.services.KafkaProducer;
import com.calculator.kafka.services.KafkaConsumer;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import org.junit.After;
import org.junit.Before;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.kafka.core.DefaultKafkaConsumerFactory;
import org.springframework.kafka.core.DefaultKafkaProducerFactory;
import org.springframework.kafka.core.KafkaTemplate;
import org.springframework.kafka.core.ProducerFactory;
import org.springframework.kafka.listener.KafkaMessageListenerContainer;
import org.springframework.kafka.listener.MessageListener;
import org.springframework.kafka.listener.config.ContainerProperties; …Run Code Online (Sandbox Code Playgroud)