문제(출처: 프로그래머스)

(문제 내용)
문자열 my_string과 is_prefix가 주어질 때, is_prefix가 my_string의 접두사라면 1을, 아니면 0을 return 하는 solution 함수를 작성해 주세요.

 

▶ 내가 푼 방식

//내가 작성한 코드
function solution(my_string, is_prefix) {
    return my_string.startsWith(is_prefix) ? 1: 0;
}

 

 다른 유저가 푼 방식

// 유저 1  
function solution(my_string, is_prefix) {
    return my_string.slice(0, is_prefix.length) === is_prefix ? 1 : 0;
}

// 유저 2
function solution(my_string, is_prefix) {
    return my_string.substring(0, is_prefix.length) === is_prefix ? 1 : 0;
}

// 유저 3

 

 배운 것들

     - 문자열.startWith('특정 문자열') : 문자열이 특정 문자열로 시작하는지 여부를 확인해주는 메서드

     - 

문제(출처: 프로그래머스)

(문제 내용)
문자열 my_string과 정수 k가 주어질 때, my_string을 k번 반복한 문자열을 return 하는 solution 함수를 작성해 주세요.

 

▶ 내가 푼 방식

//내가 작성한 코드
function solution(my_string, k) {
    var answer = '';
    for(i=0; i<k; i++){
        answer= answer+my_string
    }
    return answer;
}

 

 다른 유저가 푼 방식

// 유저 1
function solution(my_string, k) {
    return my_string.repeat(k)
}

 

 배운 것들

     - string.repeat(k)-> 문자열이 k 만큼 반복된다.

     -

1. 레포지토리 clone

git clone "레포지토리 주소"

 

2. 원격에 있는 모든 브랜치 확인하기

git branch -r

 

3. 모든 브랜치 가져오기 (로컬에 생성)

git fetch --all

 

- 특정 브랜치만 가져오기

git fetch origin 가져올-브랜치명

 

4. 각 브랜치를 로컬에 체크아웃하기

git checkout -b 브랜치명 origin/브랜치명

 

 

(예시)

$ git checkout -b develope origin/develope                                      
branch 'develope' set up to track 'origin/develope'.
Switched to a new branch 'develope'

 

이제 로컬 브랜치 develope가 원격 브랜치 origin/develope와 연결되었다

 

이젠 main 에서 develope 브랜치로 이동하려면 아래만 입력하면된다.

git checkout develope

 

라이브러리 설치

- Nest.js 를 이용하여 프로젝트를 생성하면 기본적으로 설치되어 있는 라이브러리

$ npm init
$ npm i -D jest ts-jest @jest/globals @types/jest

 

- API 테스트를 위해 설치해야하는 라이브러리

$ npm i supertest

 

 

테스트 파일의 형식

  • ___.test.ts
  • ___.spec.ts

실행 방법 ( pacakge.json 참고)

$ npm run test

 

jest 를 이용한 e2e 테스트 중

원하는 응답이 나오지 않을때 fail 이 뜨는데 콘솔에는 단순하게  이렇게 만 뜬다.

 expected 201 "Created", got 404 "Not Found"

 

expected 201 "Created", got 401 "Unauthorized"

 

내가 알고 싶은 것들

1. 어느 부분에서 문제가 생기는지?

2. 실패했을때 받은 에러 메세지의 자세한 내용이 무엇인지?

3. 응답값이 제대로 나왓는지?

에 대한 정보를 console.log 로 찍어보려다 보는 것이 너무 어려워서 검색하다가

 

해결방법을 찾았다.

 아래 코드를 추가하여 response 가 무엇인지 알아 보는 것이다.

.expect((res) => {
  expect(res.body).toHaveProperty('setCount');
})

- {} 안에는 자신이 예상되는 값이 있는지 확인하기 위한 용도

it('save workoutLogs', () => {
      token = generateTestToken(1);
      return (
        request(app.getHttpServer())
          .post('/workout-logs/')
          .set('Authorization', `Bearer ${token}`)
          .send(mockWorkoutLogSave)
          // .expect((res) => {
          //   expect(res.body).toHaveProperty('setCount');
          // })
          .expect(201)
      );
    });

 

1. 코드를 추가

2. 하나하나 주석처리를 해가면서 어느 부분에서 문제가 생기는지 파악

 

이렇게 하면 해결가능

+ Recent posts