inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

따라하며 배우는 TDD 개발 [2023.11 업데이트]

getProductById 통합 테스트 작성 (2)

matcher 관련 질문입니다.

153

보노보놈

작성한 질문수 17

0

expect("1").toEqual("1")
테스트 할 수 없나요? 항상 타임아웃 실패가 됩니다.

그리고 toEqual 과 toBe 의 차이도 알고 싶습니다.

jest mongoose tdd mongodb supertest nodejs express

답변 1

0

John Ahn

안녕하세요 !!

expect("1").toEqual("1")은 아마 어디 설정이 잘못 되어 있는게 아닌가 싶습니다 !


원시 타입 데이터(primitive type)를 비교할 때는 toBe와 toEqual을 써도 차이가 없습니다. 

하지만 참조 타입 데이터(reference type)를 비교할 때는  차이가 나는데 우선 예를 보겠습니다. 

test('should ', () => {
let a = {a: "1", b: "2"}
let b = {a: "1", b: "2"}

expect(a).toEqual(b);
})

이거는 잘 Pass가 됩니다. 

test('should ', () => {
let a = {a: "1", b: "2"}
let b = {a: "1", b: "2"}

expect(a).toBe(b);
})

하지만 이렇게 되면 FAIL이 나옵니다. 
그 이유는  toBe 나  toStricEqaul은   Deep Equality Check 을 하기 때문입니다. 
더 딥하게 체크를하는거죠 ! 

test('should ', () => {
let a = {a: "1", b: "2"}
let b = {a: "1", b: "2"}
let c = a;
expect(a).toBe(c);
})

이렇게 하면 또 성공을 합니다! 
그 이유는 a와 b는 비록 객체안에 내용은 같지만 메모리안에 객체를 저장할 때 그 인스턴스는 서로 다르기 떄문입니다. 하지만   a와 c는 같습니다. 그러기에 toBe를 사용해서 Deep Equality Check을 해도 PASS하게 됩니다.  
수고하세요 !!! 

0

보노보놈

우와 자세한 답변 감사합니당

TypeError: user_model_1.default.create is not a function

0

263

1

에러 처리를 위한 단위테스트 작성

0

357

1

res.status(201) 부분에서 typeerror가 발생합니다

0

393

1

따라하며 배우는 TDD 개발 [2023.11 업데이트] 강의 질문

0

341

1

[MAC] PORT:5000번 관련 에러

0

281

0

테스트를 위한 데이터베이스를 생성해야하나요?

0

404

1

Postman 사용방법에 대해서

0

406

1

jest.fn() 을 할당할때 타입스크립트에서 에러가 발생합니다.

0

453

1

라우터를 돌릴 때

0

357

1

npm run start를 실행할 때 부터가 이상합니다.

1

439

1

node.js에 대한 이상점

0

459

1

nodemocks 오류나니까 뺴고 설치하셔요

1

414

1

Node.js 앱을 테스트하기 위한 Jest 설정 부분..

0

276

0

models 파일만 첫번째 글자를 대문자로 해주는 이유

0

304

1

mongodb project 및 cluster관련

0

331

0

무조건 failure case 로 넘어가시는 분들

2

263

1

올려둔 ES6 Express Jest Boilerplate Template 으로 개발 중이신 분들...

0

240

0

ES6 사용하고 싶은 분들...

1

364

0

Jest did not exit one second after the test run has completed. 이슈

0

3052

3

왜 인자네개 함수 안만들어도 포스트맨에서는 에러메세지가 나오는 것인가요?

0

306

2

통합 테스트에 관한 질문 이 있습니다.

0

247

1

bodyParser 대체에 관한 질문

0

426

2

Cannot log after tests are done. Did you forget to wait for something async in your test?

0

2126

1

안녕하세요. 문의드립니다.

0

205

1