Я пытаюсь протестировать JUnit с помощью EasyMock. Я сталкиваюсь с ошибкой утверждения в строке установки, в которой аргумент заполняется из другого частного метода. Ниже приведен код и ошибка сбоя JUnit.
Мой класс JUnit:
private EasyMockSupport easyMockSupport = new EasyMockSupport();
private ObjectOne easymockObject= easyMockSupport.createMock(ObjectOne .class);
// creating employeelist
easymockObject.setEmployee(employeelist);
Мои занятия
ObjectOne methodOne(ObjectOne obj, List<Employee> employeeList) {
obj.setEmployee(getEmployeeList(employeeList));
return obj;
}
private List<Employee> getEmployeeList(List<Employee> employeeList) {
Employee emp = null;
for (Employee employee: employeeList) {
if ("somename".equalsIgnoreCase(employee.getName())) {
emp = new Employee();
emp.setName(employee.getName());
break;
}
}
return emp;
}
Я получаю ошибку утверждения для строки:
obj.setEmployee(getEmployeeList(employeeList));
потому что Employee
не переопределяет методы hashCode
и equals
. Хотя количество сотрудников одинаковое, но объекты разные, его ошибка. Любое предложение, как справиться с этим, не переопределяя методы hashCode
и equals
в классе Employee
.
java.lang.AssertionError:
Unexpected method call ObjectOne.setEmployee([Employee@528c868]):
ObjectOne.setEmployee([Employee@64c63c79]): expected: 1, actual: 0
getEmployeeList()
... вы уверены, что код правильный? Он должен возвращать СПИСОК, но возвращает один объект сотрудника! - person GhostCat   schedule 31.05.2016