2014-12-01 2 views
0

저는 단위 테스트를 작성하는 데 완벽한 초보자입니다. AngularJS, NodeJS 및 MySQL을 사용하여 응용 프로그램을 작성합니다. 나는 카르마를 설정하고 구성했습니다. 필자의 가장 기본적인 질문은 CRUD 함수를 어떻게 테스트 할 것인가입니다. 예를 들어 이것은 내 '추가'기능입니다.데이터베이스 히트에 대한 단위 테스트 작성

$scope.add = function (first_name, last_name, email) { 
    if (!first_name || first_name === '') { 
     $scope.error = true; 
     $scope.errorMsg = "Missing first name"; 
     return; 
    } 
    if (!last_name || last_name === '') { 
     $scope.error = true; 
     $scope.errorMsg = "Missing last name"; 
     return; 
    } 
    if (!email || email === '') { 
     $scope.error = true; 
     $scope.errorMsg = "Missing email"; 
     return; 
    } 
    if (!validEmail(email)) { 
     $scope.error = true; 
     $scope.errorMsg = "Email format invalid"; 
     return; 
    } 

    $scope.savingPromise = user.add(first_name, last_name, email).then(
     function (response) { 
      $scope.newID = response.insertID; 
      return; 
     }, 
     function (error) { 
      // Some error 
     } 
    ); 
} 

'user'는 메시지를 NodeJS에 보내 데이터베이스에 삽입하는 서비스입니다.

Node, 데이터베이스 또는 전자 메일이 중복 된 경우 user.add가 실패 할 것으로 예상됩니다.

Jasmine이 추가, 삭제, 업데이트 또는 일부 문서를 가리키는 방법을 배우는 사람을 도와 줄 사람이 있습니까? 많은 것을 읽었지만 아직 데이터베이스 액세스를 테스트하는 방법은 다루지 않았습니다. 감사!

답변

0

나는 두 가지 방법으로 구분할 것이다. 하나는 유효성 검사를 담당하는 두 번째 방법이고 두 번째는 DB에 저장하는 서비스이다.

$scope.add(user) { 
    validationService.Validate(user); // add unit test support to this service 
    userDataservice.Store(user); 
} 

유효성 검사 단위 테스트에 쉽게 지원을 추가 할 수 있습니다.

전체 파이프 (클라이언트 >> 서비스 >> 데이터베이스)를 테스트하려면 imho가 단위 테스트가 아니며 더 많은 통합이 필요합니다 (실제 서비스 + 실제 데이터베이스 사용). 각도기 사용에 대해 생각해 볼 수 있습니다. 또는 그와 비슷한 것을 기록하고 끝과 끝을 테스트하십시오.

관련 문제