コード呼吸3週間(8/23から8/29)回顧


Fact


作成
  • Springテストコード
  • Spring Framework
  • の学習

    Feelings

  • 3週は,2週目にSpringを用いて作成したTODO課題でテストコードを記述する.テストコードを書くのは初めてなので、新しく知った内容がたくさんあります.
  • JunitのassertEqualsとAssertJを初めて使用しました.
  • [最初に作成したテストコード]
    
      private TaskService taskService = new TaskService();
      private TaskController taskController = new TaskController(taskService);
      
      @BeforeEach
      @DisplayName("초기화")
      void setUp() {
          Task task1 = new Task();
          task1.setTitle("test1");
    
          Task task2 = new Task();
          task2.setTitle("test2");
    
          Task task3 = new Task();
          task3.setTitle("test3");
    
          taskController.create(task1);
          taskController.create(task2);
          taskController.create(task3);
    
      }
    
      @Test
      @DisplayName("전체조회")
      void list() {
    
          assertThat(taskController.list()).hasSize(3);
    
      }
      

    テストコードは本当に友好的ではないと思います.もし他の人が見たら、あなたはどんなテストをしますか?私は考えると思います.
    [D-C-Iモードで作成したテストコード参照]
    参考https://johngrib.github.io/wiki/junit5-nested/钟立的帖子制作的
      private TaskService taskService = new TaskService();
      private TaskController taskController = new TaskController(taskService);
    
      private final String[] TASK_TITLE = {"test1", "test2", "test3", "test4", "test5"};
      private final String TASK_UPDATE = "update";
      private final Long VALID_ID = 1L;
      private final Long INVALID_ID = 100L;
    
      @Nested
      @DisplayName("list 메소드는")
      class Describe_list {
    
          @Nested
          @DisplayName("tasks 리스트에 값이 존재하면")
          class Context_exist_tasks {
    
              @BeforeEach
              @DisplayName("list에 값을 세팅해줍니다")
              void tasks_setUp() {
    
                  for (int i = 0; i < TASK_TITLE.length; i++) {
                      Task task = new Task();
                      task.setTitle(TASK_TITLE[i]);
                      taskController.create(task);
                  }
    
              }
    
              @Test
              @DisplayName("task 객체들을 리턴한다")
              void It_return_tasks() throws Exception {
    
                  Assertions.assertThat(taskController.list()).hasSize(5);
    
              }
    
          }

    D-C-Iモード作成の結果により、テストコードの結果を階層的に検証できます.失敗すれば、すぐに問題点を見つけることができ、他人が見ているときにどのようなテストをするかを理解しやすくなります.

  • Mock/Mockito/BD DMockkitについて初めて知りました.
    Mockitoの方法は応用において既に熟知しているが,これまでBDMockitoの使用方法は理解されていなかった.

    Finding



  • 私はテストコードを書く習慣を身につけて、他の人が私を見ても理解できるように努力します.

  • 勉強するときは勉強の内容を整理して、やってみます.確かにもっと時間がかかりますが、理解には大いに役立つようです.これからも整理を続ける習慣を身につけなければなりません.

  • Junit&AssertJクリーンアップ
    https://velog.io/@gudnr1451/Junit-AssertJ-%EA%B8%B0%EB%B3%B8%EC%A0%95%EB%A6%AC

  • しゅうせいブロック
    https://velog.io/@gudnr1451/Mockito-%EB%9E%80

    Affirmation



  • 週2~3の勉強内容をまとめて記入する

  • 回顧文をたゆまず書く

  • 復習して1~3週間宿題をしました.

  • Spring Framework&JPAヒアリング