道歉,因为这似乎是一个无用的行为,但有没有办法我们可以实际上对Spring-Boot(1.3.8.RELEASE)的Application.java进行junit测试,这个类什么都不做,只是启动一个Spring-boot应用?
给出如下:
@SpringBootApplication
public class Application {
public static void main(String[] args) {
try{
SpringApplication.run(Application.class, args);
}catch(Exception e){
//code here
}
}
}
Run Code Online (Sandbox Code Playgroud)
也许我可以尝试捕捉异常?但我还有什么可以测试,以便JUnit将测试SpringApplication.run()?感谢任何一个例子.谢谢你们!
尝试将 Mockito 的 spy 函数用于我的 JUnit 测试。我最初有一个类:
public class App1 {
public String method1() {
sayHello();
}
public sayHello() {
Systems.out.println("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试课程中的所有内容都与上面课程的模拟间谍一起正常工作:
@Test(expected = IOException.class)
public void testMethod1Failure(){
App1 a1 = spy(App1);
doThrow(IOException.class).when(a1).sayHello();
a1.method1();
}
Run Code Online (Sandbox Code Playgroud)
但在那之后我不得不改变事情并将 sayHello() 方法带入另一个类以用作静态方法:
public class App1 {
public String method1() {
App2.sayHello();
}
}
public class App2 {
public static void sayHello() {
Systems.out.println("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
在此更改之后,我原来的 JUnit 测试用例被破坏了,我不确定如何使用 Mockito 间谍来启动调用外部 App2 静态方法的 App1……有谁知道我该怎么做?提前致谢
任何人都知道单个监听器是否可以监听下面的多个主题?我知道只有"topic1"有效,如果我想添加其他主题怎么办?你能否在下面展示两个例子?谢谢您的帮助!
@KafkaListener(topics = "topic1,topic2")
public void listen(ConsumerRecord<?, ?> record, Acknowledgment ack) {
System.out.println(record);
}
Run Code Online (Sandbox Code Playgroud)
要么
ContainerProperties containerProps = new ContainerProperties(new TopicPartitionInitialOffset("topic1, topic2", 0));
Run Code Online (Sandbox Code Playgroud) 由于我是kafka的新手,我的小组在Spring-boot应用程序上使用Spring-Integration-kafka:2.0.0.RELEASE.我能在此基础上例如用我的KafkaConsumer消耗卡夫卡的消息在这里.
对于这个spring-boot应用程序,我有我的Application.java
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.util.concurrent.TimeUnit;
import hello.notification.Listener;
@SpringBootApplication
public class Application {
private Listener listener;
public void run(String... args) throws Exception {
this.listener.countDownLatch1.await(60, TimeUnit.SECONDS);
}
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的KafkaConsumerConfig.java
package hello.notification;
import ....; //different imports
@Configuration
@EnableKafka
public class KafkaConsumerConfig {
@Bean
KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<String, String>> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
factory.setConcurrency(1);
factory.getContainerProperties().setPollTimeout(3000);
return factory;
}
@Bean
public ConsumerFactory<String, String> consumerFactory() {
Map<String, Object> …Run Code Online (Sandbox Code Playgroud) spring-integration apache-kafka spring-boot kafka-consumer-api spring-kafka
spring-boot ×3
java ×2
junit ×2
spring-kafka ×2
apache-kafka ×1
mocking ×1
mockito ×1
spring ×1