실전프로젝트 시작하고 거의 TIL을 적지 못했다.
내가 맡은 부분인 socket.io와 webRTC를 공부하는데 많은 시간을 보냈다. 프론트와 맞춰가며 해야했지만 아직 프론트 팀원들이 회원가입, 블로그 메인페이지 작업을 하고 있어서 같이 맞춰보지 못했다.
그래서 우선 기본적인 서버 코드만 작성해 놓고 타입스크립트와 테스트코드 공부를 하고 있다. 타입과 테스트 코드를 공부하니까 내가 작성하는 코드에 대해 조금 더 생각을 하면서 작성하게 된다. 아직 완전 초보 수준이여서 실전프로젝트를 하며 꾸준히 공부할 생각이다.
우리가 작성한 코드, 기능이 원하는 대로, 예상한 대로 작동한다는 자신감을 가질 수 있다.
유용한 API
beforeEach(fn, timeout)
class를 테스트 할 경우 각 테스트마다 인스턴스를 계속 생성해줘야 하는데 beforeEach를 쓰면 각 테스트가 시작하기 전에 인스턴스를 생성해준다.
const globalDatabase = makeGlobalDatabase();
beforeEach(() => {
// Clears the database and adds some testing data.
// Jest will wait for this promise to resolve before running tests.
return globalDatabase.clear().then(() => {
return globalDatabase.insert({testData: 'foo'});
});
});
test('can find things', () => {
return globalDatabase.find('thing', {}, results => {
expect(results.length).toBeGreaterThan(0);
});
});
test('can insert a thing', () => {
return globalDatabase.insert('thing', makeThing(), response => {
expect(response.success).toBeTruthy();
});
});
이렇게 데이터베이스 정보를 불러오고 테스트 시작전에 초기화하는 역할로도 사용 가능하다.
describe(name, fn)
describe를 이용하면 관련있는 테스트들을 그룹지을 수 있다.
const myBeverage = {
delicious: true,
sour: false,
};
describe('my beverage', () => {
test('is delicious', () => {
expect(myBeverage.delicious).toBeTruthy();
});
test('is not sour', () => {
expect(myBeverage.sour).toBeFalsy();
});
});