Экземпляр @Inject класса @InjectMocks в @RunWith (PowerMockRunner.class) дает нулевое значение - PullRequest
0 голосов
/ 07 января 2019

У меня есть класс Test, помеченный @RunWith (PowerMockRunner.class), где я объявил @InjectMocks ClassA classA. И есть зависимости, помеченные @Inject в ClassA. Во время выполнения моего теста эти экземпляры с @Inject имеют значение null, из-за чего classA.method () возвращает 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 имеет значение null, я получаю исключение NullPoiterException.

1 Ответ

0 голосов
/ 08 января 2019

@ Inject Mocks создает экземпляр класса и внедряет любые @Mock s или @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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...