这可能是非常基本的,但我对Spring Boot(以及Spring的许多方面)是新手,文档没有直接回答这个问题。
使用最新的Spring Boot(1.2.1),我进行了一些集成测试,其中Spring被加载并且依赖关系很好地自动连线(设置这个非常简单)。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public abstract class IntegrationTest {
}
mainApplication
类除了带有SpringApplication.run()
和以下批注的main方法之外,没有更多的东西:
@ComponentScan
@EnableAutoConfiguration
@EnableScheduling
示例测试:
public class UserServiceTest extends IntegrationTest {
@Autowired
UserService userService;
@Test
public void testSomething() throws Exception {
// Use UserService; make assertions
}
}
对于必要的依赖关系,我只有spring-boot-starter-test
:
<!-- Typical Spring Boot test dependencies: Spring Test, JUnit, Hamcrest, Mockito -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
java.lang.IllegalStateException: Failed to load ApplicationContext
...
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException:
No qualifying bean of type [org.springframework.boot.autoconfigure.web.ErrorAttributes] found for dependency:
expected at least 1 bean which qualifies as autowire candidate for this dependency.
Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
在测试中注入ErrorAttributes bean的最简单、最干净的方法是什么?
我是不是应该创建单独的application
,使用某种被嘲弄的errorattributes
bean,或者有更简单的方法?我是否缺少了一些与Web/控制器测试相关的帮助器或依赖项?
您可以使用@webappconfiguration
注释一个测试类,以指示Spring的测试框架创建一个web应用程序上下文(这足以自动执行errorattributes
),而不必实际启动嵌入式容器。
2014-12-20 15:35:52错误TestContextManager:334-允许TestExecutionListener[org.springframework.test.context.support.dependencyInjectionTestExecutionListener@5af97850]准备测试实例[com.amsb.bariz.base.test.usertest@
我有一个使用SpringMVC和SpringBoot的项目,我使用IntelliJ。我的项目如下: 我用注释服务实现。 我用以下内容注释了配置文件 在控制器中,我向服务注入 在测试类中,我使用相同的注释注入相同的服务: 我用以下方法注释测试类: 在控制器中,注入工作正常,但是在测试类中,IntelliJ说: 无法自动连线。找不到WelcomeService类型的beans。 当我运行测试时,它是有
我在网上做了很多搜索,但找不到一个使用自动连接构造函数进行单元测试的例子。我正在使用Spring将属性文件中的值自动关联到我的应用程序。我想对我的应用程序进行单元测试。java的start方法,但我有一个自动连接的构造函数,所以我不知道如何实例化MyApp。在没有自动连线属性的情况下,我在单元测试中这样做: 我不想模拟自动布线,因为我需要从属性文件中获取值,并且为了使事情更加复杂,我正在通过注释配
我正在使用Spring 3.1.0。发布和JUnit 4.8.1.我很难弄清楚为什么类的成员字段在JUnit测试中没有自动生成。我的测试看起来像... 类"EventFeed"调用以下类的实例... 但当它出现时,AbstractEventParser的“netUtilsService”成员字段为空。这很奇怪,因为在我的“testApplicationContext.xml”文件中,我有这个,我认
我想测试一些包含其他autowired服务的服务。但这些“外部”服务对于测试本身并不是必需的。 我如何创建一个测试设置,例如下面的例子? ApplicationContext.xml: 问题:所有包含来自未在测试中扫描的包(如)的自动连线依赖项的服务都将引发异常: 原因:org.springframework.beans.factory.NoSuchBeanDefinitionException: