여기 Spring 초보자, 저장소
의 findById()방법 을 테스트하고 싶지만 데이터베이스에 저장되어 있고 존재하더라도 항목을 찾을 수 없습니다.
@DataJpaTest
class CustomerRepoIntegration {
@Autowired
CustomerRepo customerRepo;
@Test
@Transactional
void findById() {
UUID uuid = UUID.randomUUID();
Customer customer = new Customer(uuid);
customerRepo.save(customer);
List<Customer> allCustomers = customerRepo.findAll();
assertEquals(1, allCustomers.size());
Optional<Customer> foundCustomer = customerRepo.findById(uuid);
assertTrue(foundCustomer.isPresent());
}
}
첫 번째 주장이 성공하는 동안 두 번째 주장은 다음과 같이 실패합니다.
Error: Failures:
Error: CustomerRepoIntegration.findById:32 expected: <true> but was: <false>
나머지 코드 :
// CustomerRepo.java
public interface CustomerRepo extends JpaRepository<Customer, UUID> {}
// Customer.java
@Entity
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Customer implements Serializable {
@Id
@GeneratedValue(generator = "UUID")
@GenericGenerator(
name = "UUID",
strategy = "org.hibernate.id.UUIDGenerator"
)
private UUID id;
}
또한 여기에서 복제 저장소를 만들었습니다 : https://github.com/ofhouse/stackoverflow-65818312