홈>
사용자 모델을 단위 테스트하고 있습니다. 사용자 이름은 비워 둘 수 없습니다. 단위 테스트는 다음과 같습니다.
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
- 답변 # 2
이 작업을 수행해야합니다.
await expect(User.create(payload())).rejects.toEqual(expect.any(Error)); // SUCCESS
이제 user.create에서 에러가 발생하면 테스트를 통과하고 에러가 발생하지 않으면 실패합니다.
await expect( User.create(payload())).to.be.rejectedWith(Error)
관련 질문
- node.js : Sequelize와 함께 INSERT INTO 명령에 오류가 있습니까?
- node.js : mongoose에서 isModified처럼 속편에서 기능이 변경되었습니까?
- node.js : Sequelize findOne을 사용하면 함수가 완료되기 전에 반환됩니다.
- javascript : beforeUpdate 후크가 작동하지 않는 이유는 무엇입니까?
- node.js : 연결은 속편, sqlite 및 전자에 의해 생성되지 않습니다.
- javascript : Node.js Postgres 관련 검색 기능 Sequelize
- node.js : Sequelize.sync: 테이블이 존재하지 않을 때 인덱스 생성
- mysql : 속성에서 선택되지 않은 필드로 그룹화 연속화
- node.js : 노드 후속 작업이 연결을 생성하지 않음
- node.js : Sequelize를 사용하여 연결된 테이블 수 가져오기
와이즈 비즈 가정
<시간>User.create
를 반환 오류가 발생하면 거부합니다.await expect(User.create(payload())).rejects.toThrow(); // SUCCESS
참고 이전 버전의toThrow
를 사용하는 경우 PR 4884로 약속이 수정되었습니다. (22.0.0 이전)Jest
와 같은 것을 사용해야합니다. :