我正在尝试使用没有@injectmocks注解的junit测试来测试一个类(及其方法)。注解将不适用于我,因为我尝试测试的类具有@injectmocks不会创建的类属性。
下面是我的函数类的样子:(文件路径:src/main/java/com/mycompany/mypackage)
package com.mycompany.mypackage;
@Service
public class MyClass {
@Value(“${someString}”)
private String someString;
public printString() {
System.out.println(someString);
}
}
下面是我的测试类的样子:(文件路径:src/test/java/com/mycompany/mypackage)
package com.mycompany.mypackage;
@RunWith(SpringJUnit4ClassRunner.class)
public class MyClassTest {
@InjectMocks
MyClass myClass
@Test
public testPrintString() {
myClass.printString()
}
}
我曾尝试使用@autowired代替@injectmocks来完全示例化myclass bean,但这实际上不会创建myclass的示例,而且每当我尝试在测试中使用'myclass'变量时,都会得到一个空指针异常。
对于我的特定用例,使用构造函数方法不是一个现实的选择。
任何帮助都太棒了!
2条答案
按热度按时间ogsagwnx1#
尝试将其添加到测试类以使用反射设置值:
ds97pgxw2#
如果你不想模拟测试,你应该做如下。