gradleVersion = '4.1'
"org.powermock:powermock-api-mockito:1.6.3"
testCompile("org.powermock:powermock-module-junit4:1.6.3")
Jacoco default version used by Gradle 4.1
Пустой указатель Исключение для класса, который имеет как служебные методы, так и методы экземпляра. Я пытаюсь автоматизировать класс, подобный этому.
Тестируемый класс:
public class StaticandInstance {
public int age;
public String name;
public static String commonPrefix(int age){
if(age <18)
return "Junior";
if(age > 18 && age< 65)
return "Mr/Miss/Mrs";
if(age>=65)
return "Senior";
return "Sir/Madam";
}
public StaticandInstance(int age,String name){
this.age=age;
this.name=name;
}
public String callPerson(){
return commonPrefix(age)+" " + name;
}
}
Тестовый класс равен
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
@PrepareForTest({StaticandInstance.class})
public class StaticandInstanceTest {
StaticandInstance instance;
@Test
public void testStaticAndInstance() {
PowerMockito.mockStatic(StaticandInstance.class);
instance= new StaticandInstance(15,"Vikram");
String test = instance.callPerson();
assertEquals(test, "Junior Vikram");
}
}
Когда я выполняю это как JUnit Itработает успешно, но не удалось запустить с Gradle и показывает покрытие кода Jacoco как ноль.
Сообщение об ошибке:
java.lang.NullPointerException
at StaticandInstance.<init>(StaticandInstance.java:19)
at testStaticAndInstance(StaticandInstanceTest.java:18)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)