제가 angular2를 활용해 서비스를 하나 개발하고 있는데요. 웹 back-end에 대한 경험은 많은데 front-end에 대한 경험이 많지 않은 상태라 일반적으로 테스트를 어느 범위까지 진행하는지 궁금해서 질문 남겨요.
angular2 기반으로 작업하다보니 angular2의 테스트 방법에 대해 검색을 했는데요. Testing Angular 2 Components with Unit Tests and the TestComponentBuilder (RC1+) 문서는 다음과 같이 3가지로 테스트를 나누네요.
- Pure unit tests - testing the component outside of the container, mocking other collaborators completely
- Component tests - standing up the component inside of Angular 2, and injecting collaborators via dependency injection, mocking external resources where appropriate
- End-to-end tests - standing up the entire web server and accessing the web client via Protractor or Selenium in order to test the system from the front-end to the back-end
웹 back-end의 경우도 비슷하게 볼 수 있을 것 같아요. 약간의 차이는 있어 보이지만요.
- Pure unit tests - 비지니스 로직을 포함하는 domain(또는 model)에 대한 단위 테스트. 위 글에서는 mocking을 통한 Controller, Service에 대한 테스트도 포함되겠네요.
- Component tests - 이 부분이 약간 다를 수도 있는데요. front-end의 경우 back-end 전체를 mocking하고 각 기능 단위별 테스트하는 것으로 볼 수 있는데요. back-end의 경우 front-end를 고려하지 않고, back-end 자체만 테스트하는 것으로 보면 될 듯 하네요. 즉, Spring의 RestTemplate 정도 활용해서 서버 API에 대한 테스트로 볼 수 있을 것 같네요.
- End-to-end tests - back-end 또한 같겠네요.
저의 경우 위 3가지 테스트 중 1순위로 pure unit tests에 집중하고, 2순위로 component tests를 진행하려고 노력합니다. end-to-end test도 노력은 하는데 UI에 변경 사항이 발생하면서 테스트가 깨지는 상황이 많이 발생해 잘 하지 않게 되더라고요.
웹 front end 개발자들은 테스트를 하는 경우 어느 부분에 우선순위를 두나요? 그 이유는 무엇인가요?
0개의 의견 from FB
0개의 의견 from SLiPP
의견을 남기기 위해서는 SLiPP 계정이 필요합니다.
안심하세요! 회원가입/로그인 후에도 작성하시던 내용은 안전하게 보존됩니다.
SLiPP 계정으로 로그인하세요.
또는, SNS 계정으로 로그인하세요.