gpt4 book ai didi

java - JUNIT Autowired 实例始终为 null

转载 作者:行者123 更新时间:2023-12-02 01:15:27 25 4
gpt4 key购买 nike

我正在尝试为下面的类编写测试用例,其中每次 myConfig 实例都为 null。有没有办法传递 Autowiring 的实例。

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 Autowiring ,则必须激活 Spring 进行测试。例如:

@RunWith(SpringRunner.class)
public class Test {

@Autowired private MyClass myClass

@Test
public void test() {
///...
}
}

如果你自己实例化类MyClass,Spring无法注入(inject)所需的类。您应该像这样修改您的测试:

@RunWith(MockitoJUnitRunner.class)
public class MyClassTest {

@MockBean
MyConfig myConfigReader;

@Autowired
MyClass propertiesExchangeManager1;


@Test
public void testMyClass() {
propertiesExchangeManager1.request("test");
}
}

关于java - JUNIT Autowired 实例始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58692353/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com