我有一个用@RunWith(PowerMockRunner.class)注释的Test类,其中我已声明@InjectMocks ClassA classA。并且在ClassA中有@Inject注释的依赖项。 在运行我的测试用例时,由于classA.method()返回null,带有@Inject的那些实例为null。
@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassA.class, LogManager.class})
@PowerMockIgnore("javax.net.ssl.*")
public class TestClass {
@InjectMocks
private ClassA classA;
}
@Profile
@Log
@Named
@Configuration
public class ClassA {
@Inject
private DependencyClass dependencyClass;
}
由于dependecnyClass为空,因此我得到了NullPoiterException。
答案 0 :(得分:0)
@Inject Mocks创建该类的实例,并将所有@Mock
或@Spy
注入该实例。您都没有声明。
@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassA.class, LogManager.class})
@PowerMockIgnore("javax.net.ssl.*")
public class TestClass {
// add mock
@Mock
private DependencyClass dependencyClass
@InjectMocks
private ClassA classA;
}