Skip to content

kku1403/cli-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

기능 정리 및 테스트 설명

🔍 Rq

  • getCommand, getParam, getIdParam
    • 명령어와 단일 인자(int/String )가 들어올 것으로 예상하여 작성

📦 AppContext

  • renew(Scanner sc, String fp) 변경
    • 실제 실행과 테스트 시 파일 경로를 다르게 하기 위해 filePath를 매개변수로 받도록 변경

📂 ArticleController

  • void updateArticle(String id)
    • ID에 해당하는 게시글을 검색하고, 존재할 경우 제목 및 내용 수정
  • void saveArticles()
    • 게시글 목록을 파일에 저장
  • void loadArticlesAndLastId()
    • 파일로부터 게시글과 lastId 불러오기

✅ 테스트 편의를 위해 아래 메서드들도 구현

  • void writeArticle(String title, String content)
  • void listArticles()

🛠️ ArticleService

  • void update(Article article, String title, String content)
  • Article findById(int id)
  • void save()
  • void load()

✅ 테스트 편의를 위해 아래 메서드들도 구현

  • List<Article> list()
  • void write(String title, String content)

🗃️ ArticleRepository

  • Article findById(int id)
  • void update(Article article, String title, String content)
  • void save()
    • 폴더 없을 경우 생성
    • 게시글 리스트를 정렬 후 저장
  • void load()
    • 파일 존재 여부 확인 후 데이터 로드
    • 게시글 및 lastId 설정

✅ 테스트 편의를 위해 아래 메서드들도 구현

  • List<Article> list()
  • void write(String title, String content)
  • int getLastId()
    • lastId가 잘 로드되었는지 확인할 수 있도록 제공

🧾 Article (Entity)

  • @NoArgsConstructor 추가
    • Jackson 역직렬화를 위해 기본 생성자 필요

🧪 AppTestRunner

  • run(String input, String filePath) 추가
    • 테스트마다 파일 경로를 다르게 설정 가능
    • filePath 지정하지 않은 테스트 케이스를 수정하지 않도록 오버로딩으로 구현

🧪 UpdateTest

  • 게시글 작성 후 수정 기능 검증
  • 수정된 게시글 내용 확인
  • 수정 시 예외 상황 처리 테스트
    • ID 파싱 불가능한 경우
    • 존재하지 않는 ID인 경우

🧪 FileTest

  • 매 테스트 전 파일 삭제
  • save() 메서드를 통해 게시글을 파일에 저장하고, 내용 검증
  • load() 호출 시 파일로부터 데이터와 lastId가 정상적으로 불러와지는지 확인

📌 참고

  • jackson-databind 라이브러리 사용
    implementation("com.fasterxml.jackson.core:jackson-databind:2.17.0")

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages