首页 > 解决方案 > JUnit 集成测试中的更新问题

问题描述

我在测试更新方法时遇到问题。该方法在正常运行的应用程序中工作并正常工作,但在测试中我不使用所选值更新对象。

@Modifying
@Query("UPDATE User u SET u.department = :newDepartment WHERE u.id IN :Id")
void updateDepartmentToUser(Department newDepartment, Iterable<Integer> Id);

@Transactional
public void updateDepartmentToUser(Department department, Iterable<Integer> Id) {
    employeeRepository.updateDepartmentToUser(department, Id);
}

@RequiredArgsConstructor(onConstructor = @__(@Autowired))
@Transactional
@Tag("integration")
class EmployeeControllerTest extends IntegrationTestHelper {

   private final EmployeeRepository employeeRepository;

@Test
void modifyDepartmentToEmployee() throws Exception {
    insertEmployees();
    employee = fakeEmployees.get(1);

    List<Integer> list = new ArrayList<>();
    list.add(employee.getId());
    employeeRepository.updateDepartmentToUser(fakeDepartments.get(2), list);
    assertThat(employee.getDepartment().getName())
            .isEqualTo(fakeDepartments.get(2).getName());
  }
}

哪里有问题?

标签: javajunitintegration-testing

解决方案


推荐阅读