我有这个界面

public interface MQTTClient {

     public void prepareAndSend(String recipient, String message);

}


出于测试目的,我想制作一个这样的配置类

@Configuration
public class TestServiceConfig {


    @Bean
    public MQTTClient mqttClient() {

        return new {

        public class MQTTClientImpl implements MQTTClient {


            @Override
            public void prepareAndSend(String recipient, String message) {
                // TODO Auto-generated method stub

            }
        }
        }
    }
}


但我不知道这是否可能

最佳答案

当然可以,通常有3种方法可以做到这一点:


像您所做的那样,自己实现它,您可能需要@Primary以确保此弹簧加载。
您不需要自己实现它,可以考虑使用像Mockito这样的模拟框架,您只需要这样做:

@Primary
@Bean
public MQTTClient mqttClient() {
    return Mockito.mock(MQTTClient.class);
}

如果您使用的是spring-boot,则可以使用注释@MockBean,因为版本1.4.x

09-04 14:24