Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在测试方法中使用@Autowired_Java_Spring_Junit_Dependency Injection_Autowired - Fatal编程技术网

Java 如何在测试方法中使用@Autowired

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

我无法在测试方法中使用Spring的@Autowired注释。我正在使用JUnit进行测试@自动连接适用于bean中的普通类,但不适用于测试方法。正如我在论坛上读到的,我必须在pom.xml中实现spring测试。我仍然无法自动连接并注入我的服务bean的依赖项。你能帮我在测试类中使用依赖注入吗?就像我在源类中使用依赖注入一样

问候
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