Когда я использую следующий метод Test с использованием JUnit 5 и JMockit, я получаю сообщение об ошибке:
JMockit не инициализирован; проверьте, что был использован параметр инициализации JVM -javaagent
Это мои классы, которые я создал и хочу проверить:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Employee
{
private Integer empId;
private String empName;
public Employee(Integer empId,String empName)
{
this.empId = empId;
this.empName = empName;
}
public Integer getEmpId() {
return empId;
}
public void setEmpId(Integer empId) {
this.empId = empId;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
}
class EmployeeDAO
{
private static List<Employee> employeeList = new ArrayList<Employee>();
static
{
Employee e1 = new Employee(1001, "John");
Employee e2 = new Employee(1002, "Jack");
Collections.addAll(employeeList, e1,e2);
}
public static List<Employee> getEmployeeList() {
return employeeList;
}
public static void setEmployeeList(List<Employee> employeeList) {
EmployeeDAO.employeeList = employeeList;
}
}
class EmployeeService
{
public List<Employee> getEmployees()
{
List<Employee> empListFromDao = new ArrayList<Employee>();
try
{
empListFromDao = EmployeeDAO.getEmployeeList();
}
catch(Exception e)
{
throw e;
}
return empListFromDao;
}
}
И это моя реализация теста:
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import mockit.Mock;
import mockit.MockUp;
import mockit.integration.junit5.JMockitExtension;
import static org.junit.jupiter.api.Assertions.assertEquals;
@ExtendWith(JMockitExtension.class)
public class EmployeeTest
{
@Test
public void testMethodForStaticMock$FromService()
{
new MockUp<EmployeeDAO>()
{
@Mock
public List<Employee> getEmployeeList()
{
return new ArrayList<Employee>();
}
};
EmployeeService service = new EmployeeService();
assertEquals(0,service.getEmployees().size());
}
}
Стек проекта, который я использовал:
- JDK 11.0.1
- Eclipse IDE 2020-03
- JUnit 5 (добавлен как библиотека в Eclipse к пути к классам проекта)
- JMockit 1.49 (добавлен как JAR)
Из-за вышеупомянутой проблемы мой тестовый пример не проходит. Любые предложения о том, как решить эту проблему? Или есть какой-то другой способ издеваться над стати c методом?