(마흔) golang-- 유닛 테스트

전통 테스트 :

기본 패키지 

수입 ( 
    " FMT를 " 
) 

addUpper FUNC (N INT ) INT { 
    입술 : = 0 
    에 대한 I = 0 ; I <= N; I ++ { 
        입술 + = I 
    } 
    리턴 입술 
} 

의 main () {FUNC 
    입술 : = addUpper ( 10 )
     의 경우 입술! = 55 { 
        fmt.Printf ( " 错误,真实值%의 V,期望值%의 V " , 입술, 55 ) 
    } 다른 { 
        fmt.Printf을 ( " 올바른 실제 값 : %의 V, 기대 값 : %의 V " , RES, 55 ) 
    } 

}

문제 : 프로그램이 실행되면, 필요 절차 중단의 주요 기능을 수정할 필요가 (1), (2) 다수의 기능을 테스트하는 단계를 더 복잡;

단위 시험 : (1) 결과가 정확한 동작을 각 기능이 실행되어 있는지 확인하고, (2) 코드를 작성 좋은 성능을 보장하기 위해;

사용에 가서 테스트 패키지 테스트에 TestXxx의 첫 번째 X는 대문자주의 시작 기능.

전체 시험 흐름도 :

특정 카탈로그 :

main.go

기본 패키지 

() {FUNC 메인을 

}

pro.go

유틸 패키지 

addUpper FUNC (N INT ) INT { 
    입술 : = 0 
    에 대한 I = 0 ; I <= N; I ++ { 
        입술 + = I 
    } 
    리턴 입술 
} 

FUNC 서브 (N1 INT , N2 INT ) INT {
     복귀 N1 - N2 
}

add_test.go

유틸 패키지 

가져 오기 ( 
    " FMT " 
    " 테스트 " 
) 

FUNC TestAddUpper (T * testing.T) { 
    RES : = addUpper ( 10 )
     IF ! RES = (55) {
         // 프로그램 오류 입력 종료 및 출력 로그 
        t.Fatalf ( " AddUpper (10)를 수행 오류 기대치 = %의 V, 출력값 V의 % = " , 55 , RES) 
    } 
    // 올바른 출력 로그가 있으면 
    t.Logf ( " AddUpper이 (10)이 올바르게 실행 ... " ) 
} 

FUNC TestHello (T * testing.T) { 
    fmt.Println (" 안녕하세요 세계 " ) 
}

sub_test.go

유틸 패키지 

오기 " 테스트 " 

FUNC TestSub (T * testing.T) { 
    RES : = 하위 ( 20 인 , 10 )
     IF ! RES = 10 {
         // 프로그램 오류 입력을 종료하고, 출력 로그 
        t.Fatalf ( " 하위 ( 20,10) 실행 오류 기대치 = %의 V, 출력값의 V (%) = " , 10 , RES) 
    } 
    // 경우 정확한 출력 로그 
    t.Logf ( " 하위 (20,10) ... 적절히 실행 " ) 
}

최종 결과 :

단위 테스트 참고 :

(1) 테스트 기능해야 TestXxx 명령, 상기 제 1 상부 케이스를 X;

(2) 테스트 케이스 파일 끝을 _test.go해야합니다

(3) TestXxx (t * testing.T) 파라미터 타입 * testing.T 있어야;

(4) 테스트 케이스 파일은 여러 테스트 케이스를 가질 수있다;

(5) 테스트 케이스 명령을 실행합니다

  (로그 출력 오류 로그없이 제대로 실행) 테스트를 이동

  이동 테스트 -v (올바른 여부, 모든 출력 로그)

에러가 발생하면 (도 6)는 포맷 t.Fatalf 출력에 오류 메시지를 사용하고 프로그램을 종료 할 수있다;

(7) t.logf ()를 출력 할 수있다 해당 로그;

(8) PASS 테스트로 표현 FAIL는 실패를 나타낸다;

(9) 시험 단일 파일 : 이동 테스트 -v add_test.go pro.go

(10) 하나의 시험 방법 : 이동 테스트 -v -test.run TestAddUpper

추천

출처www.cnblogs.com/xiximayou/p/11942842.html