강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của lch9502
lch9502

câu hỏi đã được viết

[Cập nhật] Sách giáo khoa Node.js - Từ cơ bản đến thực hành dự án

Sử dụng supertest

expect 질문입니다.

Đã giải quyết

Viết

·

451

1

안녕하세요 expect관련 함수에 대해서 질문이 있습니다.

describe('POST /join', () => {
  test('로그인 안 했으면 가입', (done) => {
    request(app)
      .post('/auth/join')
      .send({
        email: 'zerohch0@gmail.com',
        nick: 'zerocho',
        password: 'nodejsbook',
      })
      .expect('Location', '/')
      .expect(302, done);
  });
});

위의 함수에서  expect들이 나타내는게

res.status(302).redirect(‘/’) 라는것은 알겠는데,

정확하게 이해를 못해서 질문을 드립니다.

expect함수는 expect(value) 형태로 사용하는거라고 알고있는데 인수를 2개씩 써도 상관이 없는건가요??
그리고 'location',  '/', '302'의 순서는 상관이 없나요?

expectmongodbredirectnodejsmysqlSequelize

Câu trả lời 5

2

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

[] 부분은 옵션입니다.

공식문서에 나온 형식과 자리만 맞는다면 메서드 체이닝(.으로 메서드 연달아 쓰는 것)간에는 문제없습니다. 

1

lch9502님의 프로필 이미지
lch9502
Người đặt câu hỏi

supertest 공식문서를 읽어보다가 궁금증이 생겨서 한번 더 질문 드려요..

공식문서에 expect가 이런식으로 적혀있는데 여기서 [,fn] 이 의미하는 것은 펑션을 생략해도 되고 붙여도 된다는 의미로 이해해도 될까요?
실제로 코드를 

  test('로그인 수행', async (done) => {
    request(app)
      .post('/auth/login')
      .send({
        email: 'zerohch0@gmail.com',
        password: 'nodejsbook',
      })
      .expect(302)
      .expect('Location', '/', done);
  });

이런식으로 바꿔도 테스트에는 영향이 없던데 꼭 공식문서의 예시처럼 맞춰야하는 걸까요??

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

아아 jest의 expect 말씀하셨던거군요. supertest의 expect랑 다릅니다. 사용방법도 다르게 익히셔야 합니다

1

zerocho님의 프로필 이미지
zerocho
Người chia sẻ kiến thức

expect 메서드가 expect(value) 형태로 사용한다고 어디에 나와있나요?

expect는 expect(header, value) 또는 expect(statusCode, done)입니다.

location / 302 순서는 지키셔야 합니다.

0

lch9502님의 프로필 이미지
lch9502
Người đặt câu hỏi

test('1 + 1 은 2일겁니다.', () => {

    expect(1 + 1).toEqual(2);

});

 

이런 식으로  expect는 matcher함수와 같이 쓰는게 아닌가요??

혹시 모듈 자체를 jest랑 supertest랑 전혀 다르게 생각해서 안에 쓰이는 함수의 형태도 다른 것인가요??

Hình ảnh hồ sơ của lch9502
lch9502

câu hỏi đã được viết

Đặt câu hỏi