Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 토스책
- Jenkins
- 예외 핸들링
- 3WayHandshake
- 예외 커스텀
- connection reset by peer
- 예외필터
- nodejs
- nginx
- 트러블슈팅
- OS
- 유난한 도전
- 스프링Entity
- 스프링
- 스프링기초
- nestjs 예외
- 동시성문제
- 동시성 제어
- JavaScript
- nestjs
- 토스팀
- 동시성 문제
- 분산시스템
- 대규모 트래픽
- 자바
- 스프링jpa
- 스프링오류
- docker
- 스프링 이미지
- Mysql이미지
Archives
- Today
- Total
삽질블로그
회원관리 예제 Test코드 작성 본문
저번 회원관리 예제에 대한 코드를 테스트 코드로 작성해보았다.
실무에서 실제 코드를 작성하는 시간보다 테스트 코드를 작성하는데 비중을 더 쏟는다는 말이 신기했다.
테스트 코드먼저 작성하고 후에 실제 코드를 작성하는 것을 테스트 주도 개발이라고 한다.
종종 기업에서 테스트 주도 개발 경험관련 유무자라는 글을 본 적이 있는데,
그냥 흘러넘겼다가 이번에 김영한 강사님께서 하시는 말씀을 듣고 테스트 주도 개발에 대해서 알게 되었다.
나중엔 테스트 주도 개발도 간단한 프로젝트로 진행 해봐야겠다는 생각을 했다.
package com.example.springStudy.repository;
import com.example.springStudy.domain.User;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.util.Assert;
import java.util.List;
import static org.junit.jupiter.api.Assertions.*;
class UserRepositoryTest {
UserRepository repository = new UserRepository();
@Test
void storeMember() {
User user = new User();
user.setEmail("test123");
user.setName("김테스트");
user.setPassword("test");
repository.StoreMember(user);
User result = repository.findByEmail("test123").get();
Assertions.assertEquals(result, user);
}
@Test
void findByEmail() {
User user = new User();
user.setEmail("test123");
user.setName("김테스트");
user.setPassword("test");
repository.StoreMember(user);
User result = repository.findByEmail("test123").get();
Assertions.assertEquals(result, user);
}
@Test
void findPassword() {
User user = new User();
user.setEmail("test");
user.setName("김테스트");
user.setPassword("test123");
repository.StoreMember(user);
String password = repository.findPassword("test");
Assertions.assertEquals(password, user.getPassword());
}
@Test
void findAll() {
User user = new User();
user.setEmail("test");
user.setName("김테스트");
user.setPassword("test123");
repository.StoreMember(user);
List<User> userList = repository.findAll();
Assertions.assertEquals(userList.size(), 1);
}
}
package com.example.springStudy;
import com.example.springStudy.domain.User;
import com.example.springStudy.repository.UserRepository;
import com.example.springStudy.service.UserService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import java.util.Optional;
@SpringBootTest
class SpringStudyApplicationTests {
private UserRepository userRepository;
private UserService userService;
@BeforeEach
void beforeEach(){
userRepository = new UserRepository();
userService = new UserService(userRepository);
}
@AfterEach
void afterEach(){
userRepository.clear();
}
@Test
void join(){
User user = new User();
user.setEmail("test");
user.setName("test1234");
user.setPassword("aaaa");
userService.join(user);
User result = userService.searchUser("test").get();
Assertions.assertEquals(result, user);
}
@Test
void 이메일로유저찾기(){
User user = new User();
user.setEmail("test");
user.setName("test1234");
user.setPassword("aaaa");
userService.join(user);
User result = userService.searchUser("test").get();
}
@Test
void 비밀번호찾기(){
User user = new User();
user.setEmail("test");
user.setName("test1234");
user.setPassword("aaaa");
userService.join(user);
String result = userService.findPassword("test");
Assertions.assertEquals(result, "aaaa");
}
@Test
void 전체회원조회(){
User user = new User();
user.setEmail("test");
user.setName("test1234");
user.setPassword("aaaa");
userService.join(user);
User user2 = new User();
user2.setEmail("test2");
user2.setName("test12345");
user2.setPassword("aaaab");
userService.join(user2);
List<User> result = userService.findAllUser();
Assertions.assertEquals(result.size(), 2);
}
}
각각 repository, service 코드에 대한 테스트 코드이다.
'자바스프링' 카테고리의 다른 글
Unknown Entity, JPA 엔티티 인식 오류 (0) | 2022.12.12 |
---|---|
스프링 컴포넌트 스캔 @Conponent, @Controller, @Service, @Repository, Autowired 어노테이션 (0) | 2022.09.26 |
스프링 회원관리 예제 (0) | 2022.09.25 |
스프링 기초 (0) | 2022.09.19 |
[Android] 자바 스프링으로 이미지 Mysql에 전송 및 저장하기 (2) (0) | 2022.09.18 |
Comments