NullPointerException при издевательстве над классом с помощью Mockito - PullRequest
0 голосов
/ 18 января 2019

При попытке протестировать метод с помощью Junit и Mockito2 я получаю исключение NullPointerException.

import static org.mockito.Mockito.*;
import static org.junit.Assert.*;
    @Test
    public void testMethod(){
    Application app=mock(Application.class);//line 2
    assertEquals(true,app.methodToTest());
    }

Я получаю исключение NullPointerException в строке 2. Я использую junit 4.8.1 и mockito-all 2.0.2-beta. Класс Application имеет конструктор с аргументом JSONObject(org.json.JSONObject)

Ответы [ 2 ]

0 голосов
/ 05 марта 2019

Как я и думал, исключение nullpointerexception было связано с несоответствиями в зависимостях. Указанная проблема решена с использованием следующих зависимостей

<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.12</version>
    <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4-legacy -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4-legacy</artifactId>
    <version>1.6.4</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4 -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4</artifactId>
    <version>1.6.4</version>
    <scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-module-junit4-legacy -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-module-junit4-legacy</artifactId>
    <version>1.7.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.powermock/powermock-api-mockito2 -->
<dependency>
    <groupId>org.powermock</groupId>
    <artifactId>powermock-api-mockito2</artifactId>
    <version>1.7.1</version>
    <scope>test</scope>
</dependency>
0 голосов
/ 18 января 2019

Перед написанием любых тестовых случаев для методов, которые вы должны инициализировать MockitoAnnotations.initMocks например:

protected boolean mockInitialized = false;
@Before
public void setUp() {
   if (!mockInitialized) {
      MockitoAnnotations.initMocks(this);
      mockInitialized = true;
   }
}

Надеюсь, что это может решить вашу проблему. или укажите реальный код класса, для которого вы пытаетесь написать контрольные примеры.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...