오늘 미션은 프로그램 테스트 미션으로, Assertion 테스트 모듈 구현해보는 것이었다. 요구 사항에서 비동기 코드에 대한 테스트하는 것이 까다로웠다. 따라서 mocha test framework에서는 비동기 코드를 어떻게 테스트하는지 확인하였다.
describe('Item', function() {
describe('#purchase()', function() {
it('should save without error', function(done) {
var item = new Item('Paper');
item.save(function(err) {
if (err) done(err);
else done();
});
});
});
});
it() 함수에 done() 콜백함수를 더해 비동기 상황에서 기다리거나 완료된 시점을 파악한다. done() 함수는 Error or false 인자를 받아 테스트의 성공/실패 여부를 판별한다.
mocha test framework는 it() 함수 내부에서 done() 콜백함수를 인자로 전달하여 완료된 시점에 성공/실패 여부를 판별하지만, 요구사항에서는 작성된 Target 함수 코드는 수정할 수 없었다.
결과적으로 비동기 함수 호출 시점에는 async/await 이용해 동기적으로 반환값을 받았고, assert 함수를 호출하여 테스트하였다.
test('async test', async function() {
// given
const arr = [10, 20];
// when
const actual = await appendLazy(arr, 30, 2000);
// then
assert.detailEqual(actual, [10, 20, 30]);
});
또한, 미션 요구사항에는 현재까지 진행한 팀원의 미션 프로젝트 중 하나를 선택하여 테스트 코드 작성하는 것도 있었다. 팀원 소스 코드는 최소 단위로 함수 분리가 잘 되어있었기 때문에, Unit Test 코드를 작성하는 데 어려움이 없었다. 팀원의 소스를 보고 테스트를 작성해보며 몇 가지 알 수 있었다.
회고 오늘 미션은 Git 명령의 동작 방식을 이해하고, 기본 명령 동작을 그대로 구현하는 VM Git을 만드는 것이었다. - File, Commit, Repository, Local, Remote 주요 기능을 담당하도록 module을 나누거나 class로 구분해서 작업한다. - 입/출력을 위한 모듈 외에 모든 기능은 바닐라 자바스크립트로 구현한다. ...
Given-When-Then 패턴은 Test Code 스타일을 표현하는 방식으로, Test를 세 부분으로 나누어 구조화된 접근법을 제공한다. - Given은 테스트 수행하기 이전의 상태를 설명하며, Test 위한 사전 조건으로 생각할 수 있다. - When은 사용자가 지정하는 동작을 설명한다. - Then은 지정된 동작으로 인해 예상되는 변경 사항을 설...
회고 오늘 미션은 프로그램 테스트 미션으로, Assertion 테스트 모듈 구현해보는 것이었다. 요구 사항에서 비동기 코드에 대한 테스트하는 것이 까다로웠다. 따라서 mocha test framework에서는 비동기 코드를 어떻게 테스트하는지 확인하였다. 또한, 미션 요구사항에는 현재까지 진행한 팀원의 미션 프로젝트 중 하나를 선택하여 테스트 코드 작...
Form 태그에서 Submit 처리하는 방법은 세 가지 존재한다. 1. form 태그 onSubmit 속성에서 함수 호출, 반환값(false, true) 따라 요청여부가 결정 -요청 전, 폼 유효성 검사위해 유용 - 이벤트 순서 : first = second = form 태그 onSubmit 참고 - https://www.w3sc...
회고 오늘은 두 번째 릴레이 프로젝트를 진행하였다. 이번에 맡은 프로젝트는 OCR 이용해 스캐닝을 해주는 주제였다. 구현해야 하는 기능은 Google api 이용한 OCR 기능(Image to Text), 파일 업로드(front/back end) 세 가지로 나뉘어 있었다. 우선 다른 한 팀원과 함께 파일 업로드 front-end 기능 개발 역할을 맡았고,...