2015년 1월 2일 금요일

[Sails.js] Sailsjs에서 Unit Testing

개요
nodejs, 정확히는 javascript로 상용프로젝트상에서 작업을 진행하기에 있어서, TDD를 적용한 프로젝트진행이 필요하다는 이야기가 들려서 한번 Unit Testing기능을 확인해보고자 한다.

Javascript는 여타 언어와는 다르게 실행되기 전까지는 코드의 문제 조차 확인되지 않는 인터프리터의 일종이므로, 각 기능에 대한 단위별 테스트 기능, 이른바 유닛 테스트의 자동화를 실시할 필요가 있다.

통상적으로 중장기 프로젝트가 아니면 TDD의 도입 자체는 다시한번 생각해봐야 할 부분이긴 하나, 상기 이유때문에 테스트 자동화가 필요하다면 일단 한번은 짚고 넘어가야되지 않는가 하는 생각이 든다.

TDD의 도입을 꺼려하는 이유중의 하나로, 하나의 기능을 만듦으로 인해서 추가적으로 작성되어야할 테스트 코드와, 기능의 사양변화가 빈번한 이 업계에 있어, 이런 변화에 대한 TDD를 위한 유닛 테스트 코드의 추가적인 작성, 변동이 들어지는데 sails.js에서도 이러한 커스텀 코드는 작성 하지 않으면 안되지만, 그래도 어느정도 구조가 잡혀있기 때문에, 비교적 간편하게 테스트 코드를 작성하는 것이 가능하다.

sails.js에서는 mocha라고 하는 테스트 모듈을 공식적인 테스트 모듈로 채택하고 있고, 다른 복잡한 방법을 사용하지 않는다면, 거의 테스트를 위한 코드이 작성 만으로 작업을 마칠 수 있다.

수순
http://sailsjs.org/#/documentation/concepts/Testing
기본적으로 상기 문서의 수순만으로 거의 모든 테스트 환경을 구축할 수 있다.
중간중간 필요로 해지는 모듈은 npm을 통해서 도입하도록 하자.

단, mocha.opts의 설명이 "그냥 이 페이지에 나와있는 설명을 참고로 작성하시오"
라 되어있는데, 이 부분에서 test를 위한 파일이 로드 되게끔 설정할 필요가 있다.
다른 옵션들이 추가된다고 하더라도, mocha.opts의 후미에 하기옵션을 붙여놓도록 하자.

test/**/*.test.js IRC채널에서 힌트를 던져준 da_wunder씨에게 감사의 말씀을 전한다.
하기는 당시 참고로 던져준 샘플이다.
https://github.com/tarlepp/angular-sailsjs-boilerplate/blob/master/backend/test/mocha.opts

댓글 없음:

댓글 쓰기