<aside> 1️⃣ 에러사항

</aside>

java.lang.NullPointerException: Cannot invoke "com.recipia.web.domain.user.User.getId()" because "entity" is null
@Autowired private SignUpService signUpService;
@MockBean private UserRepository userRepository;

@DisplayName("[happy] - 새로운 유저가 form 내용을 다 적고 회원가입을 시도하면 회원가입에 성공한다.")
@Test
void signUpUser() {
    //given
    User user = createUser();
    SignUpUserRequest request = SignUpUserRequest.fromEntity(user);

    //when
    given(userRepository.save(user)).willReturn(user);
    SignUpUserDto signUpUserDto = signUpService.signUpUser(request);

    //then
    assertThat(signUpUserDto).isNotNull();
    assertThat(signUpUserDto).isInstanceOf(SignUpUserDto.class);
}

// id세팅은 없다.
private User createUser() {
    return User.of(
            "wlsdks12",
            "wlsdks12",
            "wlsdks12",
            "[email protected]",
            RoleType.ADMIN,
            UserStatus.Y
    );
}
@Slf4j
@RequiredArgsConstructor
@Transactional(readOnly = true)
@Service
public class SignUpService {

    private final UserRepository userRepository;

    /**
     * 새로운 유저가 회원가입을 하면 동작한다.
     */
    @Transactional
    public SignUpUserDto signUpUser(SignUpUserRequest request) {
        // 1. request를 entity로 변환한다.
        User user = User.fromRequest(request);

        // 2. 정보를 db에 저장하고 dto로 변환해서 반환한다.
        User savedUser = userRepository.save(user);
        return SignUpUserDto.fromEntity(savedUser);
    }

}

Untitled

// id세팅은 없다.
private User createUser() {
    return User.of(
            "wlsdks12",
            "wlsdks12",
            "wlsdks12",
            "[email protected]",
            RoleType.ADMIN,
            UserStatus.Y
    );
}

private User createUser() {
    return User.builder()
            .id(1L)
            .loginId("wlsdks12")
            .password("wlsdks12")
            .username("wlsdks12")
            .userStatus(UserStatus.Y)
            .email("[email protected]")
            .roleType(RoleType.USER)
            .build();
}
@DisplayName("[happy] - 새로운 유저가 form 내용을 다 적고 회원가입을 시도하면 회원가입에 성공한다.")
@Test
void signUpUser() {
    //given
    User user = createUser();
    SignUpUserRequest request = SignUpUserRequest.fromEntity(user);

    //when

		// 여기만 바꿔줬다. any(User.class)로 바꿔줬다.
    given(userRepository.save(any(User.class))).willReturn(user);

    SignUpUserDto signUpUserDto = signUpService.signUpUser(request);

    //then
    assertThat(signUpUserDto).isNotNull();
    assertThat(signUpUserDto).isInstanceOf(SignUpUserDto.class);
}

<aside> 1️⃣ 해결사항

</aside>