>

사용자 모델을 단위 테스트하고 있습니다. 사용자 이름은 비워 둘 수 없습니다. 단위 테스트는 다음과 같습니다.

it('should reject no name', async () => {
   name = '';
   expect(await User.create(payload())).toThrow();
});

payload  빈 이름을 제외한 모든 데이터가 있으면 단위 테스트에서 다음 오류가 발생합니다.

SequelizeValidationError: Validation error: Invalid validator function: unique,
    Validation error: Invalid validator function: msg,
    Validation error: column "cell" does not exist

여기서 어설 션은 .toThrow  맞지 않으며 테스트 사례가 여전히 실패합니다. 아무 소용없이 BeUndefined를 시도했습니다. 이 유형의 오류에 대한 올바른 주장은 무엇입니까?

  • 답변 # 1

    와이즈 비즈 가정   User.create 를 반환  오류가 발생하면 거부합니다.

    Promise
    
    

    <시간>

    await expect(User.create(payload())).rejects.toThrow(); // SUCCESS 참고  이전 버전의 toThrow 를 사용하는 경우 PR 4884로 약속이 수정되었습니다.  (22.0.0 이전) Jest 와 같은 것을 사용해야합니다. :

    toEqual
    
    

  • 답변 # 2

    이 작업을 수행해야합니다.

    await expect(User.create(payload())).rejects.toEqual(expect.any(Error));  // SUCCESS
    
    

    이제 user.create에서 에러가 발생하면 테스트를 통과하고 에러가 발생하지 않으면 실패합니다.

    await expect( User.create(payload())).to.be.rejectedWith(Error)

  • 이전 시간 초과 예외가있는 Kafka 브로커 성능 문제
  • 다음 swift - 누르면 볼 바운스