Java Spring - персистирующий объект с API работает, но я не могу сохранить объект с сервисом в тесте, нулевой указатель - PullRequest
1 голос
/ 07 марта 2019

Весной я создал API для сохранения объекта из тела JSON, и он работает нормально, но я пытаюсь создать кучу тестов, и мне нужны примеры данных для них.Я пытаюсь сохранить эти данные в тесте, используя сервис, связанный с этим объектом, но когда я пытаюсь это сделать, я получаю исключение NullPointerException.Не могли бы вы помочь мне решить эту проблему?

Класс сущности:

@Entity
@Table(name = "employees")
@NoArgsConstructor
@Data
public class EmployeeEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private int employeeId;
    private String firstName;
    private String lastName;
}

Служба, связанная с сущностью:

@Service
public class EmployeeService {

    @Autowired
    EmployeeRepository employeeRepository;

    public void addEmployee(EmployeeEntity employee){
        employeeRepository.save(employee);
    }

    public Iterable<EmployeeEntity> getAllEmployees(){
        return employeeRepository.findAll();
    }

    public Optional<EmployeeEntity> getEmployeeById(Long id){
        return employeeRepository.findById(id);
    }
}

Тест, который выдает исключение NullPointerException:

public class EmployeeCRUDtest {

    TestUtils testUtils = new TestUtils();

    @Autowired
    EmployeeService employeeService;

    @Test
    public void shouldPersistEmployee(){
        EmployeeEntity emp = testUtils.generateSingleRandomEmployee();
        employeeService.addEmployee(emp);
    }
}

1 Ответ

1 голос
/ 07 марта 2019

Вам не хватает аннотации, которая заставляет @Autowired в тестах работать:

@RunWith(SpringRunner.class)
public class EmployeeCRUDtest
...