Java 如何在测试方法中使用@Autowired
我无法在测试方法中使用Spring的@Autowired注释。我正在使用JUnit进行测试@自动连接适用于bean中的普通类,但不适用于测试方法。正如我在论坛上读到的,我必须在pom.xml中实现spring测试。我仍然无法自动连接并注入我的服务bean的依赖项。你能帮我在测试类中使用依赖注入吗?就像我在源类中使用依赖注入一样 问候Java 如何在测试方法中使用@Autowired,java,spring,junit,dependency-injection,autowired,Java,Spring,Junit,Dependency Injection,Autowired,我无法在测试方法中使用Spring的@Autowired注释。我正在使用JUnit进行测试@自动连接适用于bean中的普通类,但不适用于测试方法。正如我在论坛上读到的,我必须在pom.xml中实现spring测试。我仍然无法自动连接并注入我的服务bean的依赖项。你能帮我在测试类中使用依赖注入吗?就像我在源类中使用依赖注入一样 问候 Alper如果您正在编写单元测试,建议您使用@Mock和@injectmock 您可以为测试类添加注释,以便使用MockitoJUnitRunner @RunWit
Alper如果您正在编写单元测试,建议您使用
@Mock
和@injectmock
您可以为测试类添加注释,以便使用MockitoJUnitRunner
@RunWith(MockitoJUnitRunner.class)
public class TestClass{
@Mock
private MockedClass;
@InjectMocks
private TestedClass;
}
但是如果您真的想测试所有流并需要注入类,您可以@RunWith(SpringJUnit4ClassRunner.class)
和@Autowired
您的类
更新: 尝试在spring boot应用程序上添加此依赖项(无需添加版本)以使用
SpringJUnit4ClassRunner
:
groupId: org.springframework.boot
artifactId: spring-boot-starter-test
scope: test
version: 1.4.4
您需要以运行应用程序时的类似方式为测试设置上下文。上面有很多信息,但简而言之,您应该使用@ContextConfiguration和@RunWith(SpringJUnit4ClassRunner.class)。也很抱歉,我没有时间给出完整的答案。顺便说一句,我没有投你反对票。你好,佩德罗索。我在添加@RunWith(SpringJUnit4ClassRunner.class)时遇到java.lang.NoClassDefFoundError:org/springframework/transaction/TransactionDefinition。请尝试在spring启动应用程序上添加此依赖项(无需添加版本):groupId:org.springframework.boot artifactId:spring启动程序测试范围:测试版本:1.4.4