6. nest.js
delete API test
describe("deleteOne", () => {
it("delets a movie", () => {
service.create({
title: 'Test Movie',
genres: ['test'],
year: 200,
});
console.log(service.getAll)
const allMovies = service.getAll();
service.deleteOne(1)
const afterDelete = service.getAll();
expect(afterDelete.length).toBeLessT(allMovies.length - 1);
})
})
- 테스트를 위해 임시로 영화 데이터를 넣는다.
- 성공할 경우 deletes a movie를 출력한다.
it("it should return a 404", () => {
try {
service.deleteOne(999);
}catch (e) {
expect(e).toBeInstanceOf(NotFoundException)
}
})
- 존재하지 않는 id를 삭제할 경우 404를 리턴하는지도 확인할 수 있다.
Create 테스트
describe("create", () => {
it("should create a movie", () => {
const beforeCreate = service.getAll().length
service.create({
title: 'Test Movie',
genres: ['test'],
year: 2000,
});
const afterCreate = service.getAll().length;
console.log(beforeCreate,afterCreate)
expect(afterCreate).toBeGreaterThan(beforeCreate)
})
})
제대로 데이터가 생성되었는지 테스트하기
update 테스트
describe("update", () => {
it("should updata a movie", () => {
service.create({
title: 'Test Movie',
genres: ['test'],
year: 2000,
});
service.update(1, { title: "Updated Test" });
const movie = service.getOne(1);
expect(movie.title).toEqual('Updated Test')
})
})
it("it should throw a Not Found Exception", () => {
try {
service.update(999, {});
}catch (e) {
expect(e).toBeInstanceOf(NotFoundException)
}
})
데이터가 제대로 변경되었는지 확인하기 위한 테스트
spec.ts 는 모두 유닛 테스트를 위한 것이다.