【发布时间】:2018-06-23 15:48:43
【问题描述】:
我有一个班级MyClass,里面有@Autowired private Environment env;。它还有public MyFunctionA(),它调用private MyFunctionB(),在MyFunctionB() 中,它调用env.getProperty(propName),它将一个字符串值从属性文件返回到MyFunctionA(),作为计算的一个因素。但是目前,在调试 JUnit 测试时,我无法在没有得到 null 的情况下模拟 env。
MyClass 的单元测试类MyServiceTest 开头如下:
public class MyServiceTest {
@Mock
final Environment env = Mockito.mock(Environment.class);
MyServiceImpl myService;
@Before
public void setUp() throws Exception {
Mockito.when(this.env.getProperty("myProperty")).thenReturn("1234,2345");
myService = new MyServiceImpl();
稍后,在单元测试函数中,它调用了MyFunctionA(),但调试显示MyFunctionB() 在进行env.getProperty 调用时遇到了NPE。有什么问题?测试如下:
@Test
public void myUnitTest() throws IOException {
boolean boolFlag = myService.MyFunctionA();
assertTrue(boolFLag);
}
【问题讨论】:
标签: java junit mockito autowired