我试图单元测试一个骆驼路线。被测试的路线扩展了一个自定义的抽象RouteBuilder(我知道关于偏爱组合而不是继承-这是维护代码)。我已经像@Roman Vottner在这里所做的那样设置了我的测试。一切都可以工作(初始化),直到我击中层次结构中的第一个抽象类。它有一个@Autowoe类,它没有初始化(为null),即使它在测试开始时被嘲笑和@Autowoe。关于如何解决我的注入问题有什么想法吗?
@RunWith(CamelSpringRunner.class)
@BootstrapWith(CamelTestContextBootstrapper.class)
@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = {FooRouteTest.ContextConfig.class})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
public class FooRouteTest {
@Configuration
@PropertySource({"classpath:some.properties", "classpath:environment.properties"})
public static class ContextConfig extends CamelConfiguration {
@Bean
public UserServices userServices() {
return mock(UserServices.class);
} //and many more of the like
}
@Autowired
private UserServices userServices; //and all the others too
@Test
public void testAfoo() throws Exception {
//....
template.setDefaultEndpointUri("direct://getTheData");
template.sendBody(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonNode));
//...
}
}
在调试时的抽象超类中:
@Autowired
public ClientServices clientServices;
//...
String clientNumber=clientServices.getLoggedInNumber(); //clientServices is null and not mocked!
//...
通过将FooRoute显式声明为bean解决了这个问题:
@Bean
public FooRoute fooRoute(){
return new FooRoute();
}
@Override
public List<RouteBuilder> routes() {
final List<RouteBuilder> routes = new ArrayList<>();
routes.add(fooRoute());
return routes;
}
Autowire 包含一对宏,可以让你在两个 Scala 系统之间执行类型安全、无反射的 RPC 远程过程调用。示例代码: // shared interfacetrait Api{ def add(x: Int, y: Int, z: Int): Int }// server-side router and implementation object Server extends autowi
ContactController.java
问题内容: 总的来说,我对Web上的Spring和Java还是很陌生,但是周末我一直在为此苦苦挣扎。将所有配置整合在一起并使Spring在IntelliJ上与gradle一起使用是一个挑战。 我正在尝试在Spring中实施另一个项目,以便更好地了解如何使用它。 我整个上午都在收到此错误,并且在Spring上浏览了许多参考资料和指南,但是看不到问题出在哪里。 由以下原因引起:org.springfr
我使用的是。我在自动读取或时遇到了一个问题。如果我为配置,我将得到以下错误。 更新来自我11月22日: 如果我创建了新的类并在该类上启用自动配置,那么JavaMailSender和JavaMailSenderImpl就可以正确地实现autowired,Spring Boot应用程序就可以成功启动。我已经在application.class中启用了AutoConfiguration。用EnableA
问题内容: 总的来说,我对Web上的Spring和Java还是很陌生,但是周末我一直在为此苦苦挣扎。将所有配置整合在一起并使Spring在IntelliJ上与gradle一起使用是一个挑战。 我正在尝试在Spring中实施另一个项目,以便更好地了解如何使用它。 我整个上午都在收到此错误,并且在Spring上浏览了许多参考资料和指南,但看不到问题出在哪里。 由以下原因引起:org.springfra