모듈 테스트
테스트 모듈은 테스트 프레임워크로, 어설션 모듈과 결합하여 assert
다양한 테스트 케이스를 쉽게 작성할 수 있습니다.
fibjs
모듈을 도입 하려면 test
첫 번째 작업이 필요한 경우가 많습니다 test setup
.
1
2var test = require('test');
test.setup();
테스트 사례를 작성하기 전에 일반적으로 테스트 콘텐츠를 설명하는 테스트 모듈을 정의해야 합니다.
- 설명하다
explain은 테스트 스위트의 개념과 유사한 모든 테스트 그룹에 대한 컨테이너이며 it
특정 카테고리 아래에 테스트를 고정하는 데 사용됩니다. explain은 여러 it 사용 사례 또는 중첩된 explain으로 표시되는 기타 하위 카테고리를 포함할 수 있습니다.
1describe(String name, Function block)
호출 매개변수: 이름: 문자열, 모듈 이름 정의 블록: 함수, 모듈 초기화 코드
- 그것
단일 테스트 사례를 나타내며, 각 설명은 테스트 결과의 신뢰성을 보장하기 위해 단일 상황만 테스트해야 합니다.
1it(String name, Function block)
호출 매개변수: 이름: 문자열, 프로젝트 이름 정의 블록: 함수, 테스트 내용
- 종료(&it).건너뛰기
건너뛴 테스트 사례를 나타냅니다.
1xit(String name, Function block)
호출 매개변수: 이름: 문자열, 프로젝트 이름 정의 블록: 함수, 테스트 내용
- 오잇앤잇.온리
현재 테스트 케이스만 실행하고 다른 테스트 케이스는 무시하므로 현재 테스트 케이스만 별도로 디버깅할 수 있어 매우 실용적입니다.
1
2oit(String name, Function block)
it.only(String name, Function block)
호출 매개변수: 이름: 문자열, 프로젝트 이름 정의 블록: 함수, 테스트 내용
- 할 것
테스트 케이스 계획을 더욱 개선해야 함을 나타냅니다.
1todo(String name, Function block)
호출 매개변수: 이름: 문자열, 프로젝트 이름 정의 블록: 함수, 테스트 내용
테스트 케이스를 작성할 때 다음을 사용하는 것이 일반적입니다.assert어설션 모듈은 함수의 반환을 확인합니다. 사용 방법:
1assert(condition, String message);
그 중 첫 번째 매개변수는 어설션해야 하는 조건이고, 두 번째 매개변수는 오류 메시지입니다.
물체
assert
테스트 모듈을 어설션합니다. 테스트 값이 false이면 오류가 보고됩니다. 오류 보고 동작은 계속 실행되거나 오류가 발생하도록 설정할 수 있습니다.
1assert test.assert;
정적 함수
describe
중첩될 수 있는 테스트 모듈 정의
1
2static test.describe(String name,
Function block);
호출 매개변수:
- name: 문자열, 모듈 이름을 정의합니다.
- block: 함수, 모듈 초기화 코드
xdescribe
테스트를 일시 중지하는 모듈 정의,test.setup그런 다음 explain.skip을 사용하여 호출할 수 있습니다.
1
2static test.xdescribe(String name,
Function block);
호출 매개변수:
- name: 문자열, 모듈 이름을 정의합니다.
- block: 함수, 모듈 초기화 코드
odescribe
독립적인 테스트를 위한 모듈 정의,test.setup그런 다음 explain.only를 사용하여 호출할 수 있습니다.
1
2static test.odescribe(String name,
Function block);
호출 매개변수:
- name: 문자열, 모듈 이름을 정의합니다.
- block: 함수, 모듈 초기화 코드
it
테스트 프로젝트 정의
1
2static test.it(String name,
Function block);
호출 매개변수:
- name: 문자열, 프로젝트 이름을 정의합니다.
- block: 기능, 테스트 내용
xit
테스트를 일시 중지하는 프로젝트 정의,test.setup그런 다음 it.skip을 사용하여 전화할 수 있습니다.
1
2static test.xit(String name,
Function block);
호출 매개변수:
- name: 문자열, 프로젝트 이름을 정의합니다.
- block: 기능, 테스트 내용
oit
독립적인 테스트를 위한 프로젝트 정의,test.setup그런 다음 사용할 수 있습니다. 통화에만 사용할 수 있습니다.
1
2static test.oit(String name,
Function block);
호출 매개변수:
- name: 문자열, 프로젝트 이름을 정의합니다.
- block: 기능, 테스트 내용
todo
계획 프로젝트 정의,test.setup그런 다음 it.todo를 사용하여 전화할 수 있습니다.
1
2static test.todo(String name,
Function block);
호출 매개변수:
- name: 문자열, 프로젝트 이름을 정의합니다.
- block: 기능, 테스트 내용
before
현재 테스트 모듈 진입 이벤트 정의
1static test.before(Function func);
호출 매개변수:
- func: 기능, 이벤트 기능
after
현재 테스트 모듈의 종료 이벤트를 정의합니다.
1static test.after(Function func);
호출 매개변수:
- func: 기능, 이벤트 기능
beforeEach
현재 테스트 모듈 테스트 프로젝트 항목 이벤트 정의
1static test.beforeEach(Function func);
호출 매개변수:
- func: 기능, 이벤트 기능
afterEach
현재 테스트 모듈 테스트 프로젝트 종료 이벤트 정의
1static test.afterEach(Function func);
호출 매개변수:
- func: 기능, 이벤트 기능
mustCall
함수가 지정된 횟수만큼 호출되어야 하는지 테스트
1static Function test.mustCall(Function func);
호출 매개변수:
- func: 기능, 테스트 중인 기능
결과 반환:
- Function, 래핑된 함수를 반환합니다.
mustNotCall
함수를 호출하면 안 되는지 테스트
1static Function test.mustNotCall(Function func);
호출 매개변수:
- func: 기능, 테스트 중인 기능
결과 반환:
- Function, 래핑된 함수를 반환합니다.
함수를 호출하면 안 되는지 테스트
1static Function test.mustNotCall();
결과 반환:
- Function, 래핑된 함수를 반환합니다.
run
정의된 테스트 모듈 실행 시작
1static Object test.run(Integer mode = console.ERROR);
호출 매개변수:
- mode: Integer, 테스트 모드를 지정 ERROR일 경우 프로젝트 에러 정보를 집중하여 Report 이후에 표시 ERROR보다 낮을 경우 언제든지 출력 정보를 표시 ERROR보다 높을 경우 Report만 표시 표시됩니다.
결과 반환:
- Object, 테스트 결과 반환
테스트 실행이 완료되면 테스트 결과가 다음 형식으로 반환됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33{
"total": 2, // number of total test cases
"pass": 2, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
},
{
"name": "sub cases", // name of sub test case
"total": 1, // number of total test cases
"pass": 1, // number of passed test cases
"fail": 0, // number of failed test cases
"skip": 0, // number of skipped test cases
"todo": 0, // number of todo test cases
"time": 0.000000, // time elapsed in seconds
"cases": [ // details of test cases
{
"name": "test", // name of test case
"time": 0.000000, // time elapsed in seconds
"result": true, // result of test case
"error": null // message of error if test case failed
}
]
}
]
}
setup
현재 스크립트의 테스트 환경을 초기화하고 테스트 모듈 메소드를 현재 스크립트의 전역 변수로 복사합니다.
1static test.setup();
정적 속성
slow
정수, 느린 테스트 경고 임계값 설정 및 쿼리(ms 단위), 기본값은 75입니다.
1static Integer test.slow;