반응형
오늘은 15강 JPA data.sql 사용하기 강의를 들어보았다.
또한 테스트 코드를 정리하는 시간을 가져보았다.
아래부분은 강사님 화면에는 나오는 오류였지만 내 코드는 버전이 달라서인지 나오지 않았다.
*PersonRepositoryTest.java
package com.fastcampus.javaallinone.project3.mycontact.repository;
import com.fastcampus.javaallinone.project3.mycontact.domain.Person;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.transaction.Transactional;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat;
@Transactional
@SpringBootTest
class PersonRepositoryTest {
@Autowired
private PersonRepository personRepository;
@Test
void crud(){
Person person = new Person();
person.setName("john");
person.setAge(10);
person.setBloodType("A");
personRepository.save(person);
List<Person> result = personRepository.findByName("john");
assertThat(result.size()).isEqualTo(1);
assertThat(result.get(0).getName()).isEqualTo("john");
assertThat(result.get(0).getAge()).isEqualTo(10);
assertThat(result.get(0).getBloodType()).isEqualTo("A");
}
@Test
void hashCodeAndEquals(){
Person person1 = new Person("martin", 10, "A");
Person person2 = new Person("martin", 10, "A");
System.out.println(person1.equals(person2));
System.out.println(person1.hashCode());
System.out.println(person2.hashCode());
Map<Person, Integer> map = new HashMap<>();
map.put(person1, person1.getAge());
System.out.println(map);
System.out.println(map.get(person2));
}
@Test
void findByBloodType(){
List<Person> result = personRepository.findByBloodType("A");
assertThat(result.size()).isEqualTo(2);
assertThat(result.get(0).getName()).isEqualTo("martin");
assertThat(result.get(1).getName()).isEqualTo("benny");
}
@Test
void findBirthdayBetween(){
List<Person> result = personRepository.findByMonthOfBirthday(8);
assertThat(result.size()).isEqualTo(2);
assertThat(result.get(0).getName()).isEqualTo("martin");
assertThat(result.get(1).getName()).isEqualTo("sophia");
}
}
*BlockRepositoryTest.java
package com.fastcampus.javaallinone.project3.mycontact.repository;
import com.fastcampus.javaallinone.project3.mycontact.domain.Block;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.time.LocalDate;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class BlockRepositoryTest {
@Autowired
private BlockRepository blockRepository;
@Test
void crud(){
Block block = new Block();
block.setName("martin");
block.setReason("친하지않아서");
block.setStartDate(LocalDate.now());
block.setEndDate(LocalDate.now());
blockRepository.save(block);
List<Block> blocks = blockRepository.findAll();
assertThat(blocks.size()).isEqualTo(3);
assertThat(blocks.get(0).getName()).isEqualTo("dennis");
assertThat(blocks.get(1).getName()).isEqualTo("sophia");
assertThat(blocks.get(2).getName()).isEqualTo("martin");
}
}
*PersonServiceTest.java
package com.fastcampus.javaallinone.project3.mycontact.service;
import com.fastcampus.javaallinone.project3.mycontact.domain.Person;
import com.fastcampus.javaallinone.project3.mycontact.repository.PersonRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
@SpringBootTest
class personServiceTest {
@Autowired
private PersonService personService;
@Autowired
private PersonRepository personRepository;
@Test
void getPeopleExcludeBlocks(){
List<Person> result = personService.getPeopleExcludeBlocks();
personRepository.findAll().forEach(System.out::println);
assertThat(result.size()).isEqualTo(3);
assertThat(result.get(0).getName()).isEqualTo("martin");
assertThat(result.get(1).getName()).isEqualTo("david");
assertThat(result.get(2).getName()).isEqualTo("benny");
}
@Test
void getPeopleByName(){
List<Person> result = personService.getPeopleByName("martin");
assertThat(result.size()).isEqualTo(1);
assertThat(result.get(0).getName()).isEqualTo("martin");
}
@Test
void getPerson(){
Person person = personService.getPerson(3L);
assertThat(person.getName()).isEqualTo("dennis");
}
}
*MycontactApplicationTest.java
package com.fastcampus.javaallinone.project3.mycontact;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class MycontactApplicationTests {
@Test
void contextLoads() {
}
}
*data.sql
insert into person(`id`, `name`, `age`, `blood_type`, `year_of_birthday`, `month_of_birthday`, `day_of_birthday`) values (1, 'martin', 10, 'A', 1991,8,15);
insert into person(`id`, `name`, `age`, `blood_type`, `year_of_birthday`, `month_of_birthday`, `day_of_birthday`) values (2, 'david', 9, 'B', 1992,7,21);
insert into person(`id`, `name`, `age`, `blood_type`, `year_of_birthday`, `month_of_birthday`, `day_of_birthday`) values (3, 'dennis', 8, 'O', 1993,10,15);
insert into person(`id`, `name`, `age`, `blood_type`, `year_of_birthday`, `month_of_birthday`, `day_of_birthday`) values (4, 'sophia', 7, 'AB', 1994,8,31);
insert into person(`id`, `name`, `age`, `blood_type`, `year_of_birthday`, `month_of_birthday`, `day_of_birthday`) values (5, 'benny', 6, 'A', 1999,12,23);
insert into block(`id`, `name`) values (1,'dennis');
insert into block(`id`, `name`) values (2, 'sophia');
update person set block_id = 1 where id = 3;
update person set block_id = 2 where id = 4;
여기까지 하고 최종 결과물이 궁금해서 마지막 강의를 한번 보았다.
아쉽게도 이번 강의는 프론트엔드쪽은 구현하지 않는 듯 하다.
그래도 마지막 요약강의를 들어보니 지금 어디까지 공부를 했는지 조금 파악이 되는 것 같다.
지금까지는 아래 1-cycle 의 맨 왼쪽라인인 JPA까지 배웠다.
앞으로 갈길이 멀구나...ㅋㅋㅋ
지금까지 배운 것 중에도 명확하게 이해되지 않는 부분도 있어서 한번 다시 훑어보고 다음단계로 넘어가야겠다.
패스트캠퍼스 강의: https://bit.ly/3ilMbIO
반응형
'언어공부 > JAVA&SPRING' 카테고리의 다른 글
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 33회차 미션 (0) | 2020.09.11 |
---|---|
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 32회차 미션 (0) | 2020.09.10 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 30회차 미션 (0) | 2020.09.08 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 29회차 미션 (0) | 2020.09.07 |
[패스트캠퍼스 수강 후기] 자바 인강 100% 환급 챌린지 28회차 미션 (0) | 2020.09.06 |
댓글