Java JUNIT自动连线实例始终为空
我正在尝试为下面的类编写测试用例,其中每次myConfig实例都是空的。是否有任何方法可以传递autowired实例Java JUNIT自动连线实例始终为空,java,spring,junit,mockito,Java,Spring,Junit,Mockito,我正在尝试为下面的类编写测试用例,其中每次myConfig实例都是空的。是否有任何方法可以传递autowired实例 public class MyClass { @Autowired MyConfig myConfig ; public Properties getUnAckMessage(String queueName) { Properties prop=new Properties() URL url = new URL(StringUtils.join(
public class MyClass {
@Autowired
MyConfig myConfig ;
public Properties getUnAckMessage(String queueName) {
Properties prop=new Properties()
URL url = new URL(StringUtils.join(myConfig.getQueueHost(),
myConfig.getQueueURL(),myConfig.getQueueVm(),queueName));
return prop;
}
public Properties request(String queue) {
return getUnAckMessage(queue);
}
}
public class Main {
public void method() {
MyClass myClass=new MyClass();
myClass.getUnAckMessage("test");
}
}
测试用例
@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {
@MockBean
MyConfig myConfigReader;
@Test
public void testMyClass() {
MyClass propertiesExchangeManager1 = new MyClass ();
propertiesExchangeManager1.request("test");
}
}
如果希望Spring自动连线,则必须为测试激活Spring。例如:
@RunWith(SpringRunner.class)
public class Test {
@Autowired private MyClass myClass
@Test
public void test() {
///...
}
}
编辑:如果您自己实例化类MyClass,Spring将无法注入所需的类。您应该修改测试,如下所示:
@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {
@MockBean
MyConfig myConfigReader;
@Autowired
MyClass propertiesExchangeManager1;
@Test
public void testMyClass() {
propertiesExchangeManager1.request("test");
}
}
如果希望Spring自动连线,则必须为测试激活Spring。例如:
@RunWith(SpringRunner.class)
public class Test {
@Autowired private MyClass myClass
@Test
public void test() {
///...
}
}
编辑:如果您自己实例化类MyClass,Spring将无法注入所需的类。您应该修改测试,如下所示:
@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {
@MockBean
MyConfig myConfigReader;
@Autowired
MyClass propertiesExchangeManager1;
@Test
public void testMyClass() {
propertiesExchangeManager1.request("test");
}
}
我得到以下异常org.springframework.beans.factory.unsatifiedpendencyException:创建名为“com.test.MyClassTest”的bean时出错:通过字段“myConfigReader”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.test.reader.MyConfigReader”类型的合格bean可用:至少需要1个符合autowire候选条件的bean。依赖项注释:此异常声明MyConfigReader类型的bean不能自动连接。确保使用“@Service”“@Component”或类似注释对该类进行注释,以便spring能够创建实例。该类存在于该类中,但仍然会出现异常,顺便说一句,它被MyClass使用,但在测试类中情况不同,并且可以使用Mockito。是,您可以将mockito与'@Mock'和'@InjectMocks'一起使用。检查编辑的帖子。我得到以下异常org.springframework.beans.factory.unsatifiedpendencyException:创建名为“com.test.MyClassTest”的bean时出错:通过字段“myConfigReader”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.test.reader.MyConfigReader”类型的合格bean可用:至少需要1个符合autowire候选条件的bean。依赖项注释:此异常声明MyConfigReader类型的bean不能自动连接。确保使用“@Service”“@Component”或类似注释对该类进行注释,以便spring能够创建实例。该类存在于该类中,但仍然会出现异常,顺便说一句,它被MyClass使用,但在测试类中情况不同,并且可以使用Mockito。是,您可以将mockito与'@Mock'和'@InjectMocks'一起使用。检查我的帖子。