모듈:템플릿 테스트 케이스/샌드박스
Module| 모듈 샌드박스 페이지는 다음과 같습니다.템플릿 테스트 케이스(diff). 테스트 케이스에 대해서는, 부속의 서브 페이지도 참조해 주세요(실행). |
| 이 모듈은 다음 다른 모듈에 의존합니다. |
이 모듈에서는 템플릿테스트 케이스를 생성하는 템플릿을 작성하기 위한 프레임워크를 제공합니다.테스트 케이스는 수동으로 작성할 수 있지만 이 모듈에서 제공하는 템플릿과 같은 Lua 기반 템플릿을 사용하면 템플릿 인수를 1회만 입력하면 되기 때문에 테스트 케이스 작성에 필요한 수고를 줄이고 입력 오류 가능성을 줄일 수 있습니다.
사용.
이 모듈은 보통 직접 호출하지 마십시오.대신 다음 템플릿 중 하나를 사용해야 합니다.
파라미터 기반 템플릿:
- 템플릿:테스트 케이스 – 표준 테스트 케이스용
- 템플릿:테스트 케이스 표 – 열로 나란히 배열된 테스트 케이스용
- 템플릿:테스트 케이스 행 - 표에 행으로 배열된 테스트 케이스용
- 템플릿:접을 수 있는 테스트 케이스– 결과가 동일한 경우 기본적으로 접히는 테스트 케이스
- 템플릿:인라인 테스트 케이스– 호출 수가 적고 출력이 작은 테스트 케이스로 줄 바꿈이 없는 경우
이러한 템플릿의 유일한 차이점은 기본 인수입니다.예를 들어 Template에서 테스트 케이스를 나란히 표시할 수 있습니다.테스트 사례 행 지정 _format=columns
Nowiki 기반 템플릿:
- 템플릿:테스트 케이스 nowiki – nowiki 태그로 둘러싸인 템플릿 코드로 작성된 테스트 케이스(복잡한 템플릿 호출 표시에 유용)
- 템플릿:Nowiki 템플릿 데모– 템플릿 설명서에서 사용
다음 형식을 사용할 수도 있습니다.{{#invoke:template test case main parameters}}. 이것은 템플릿과 동일한 기본값을 사용합니다.테스트 케이스. 파라미터의 설명에 대해서는, 그 페이지를 참조해 주세요.
다른 Lua 모듈에는 이 모듈에 대한 직접 인터페이스는 없습니다.Lua 모듈은 일반적으로 다음과 같은 Lua 기반의 테스트 케이스 모듈을 사용해야 합니다.유닛 테스트 또는 모듈:Scribunto Unit.이 모듈을 사용해야 하는 경우 위의 템플릿 중 하나와 함께 frame:expandTemplate를 사용할 수 있습니다.
배열
이 모듈의 모듈에는 다음과 같은 구성 모듈이 있습니다.템플릿 테스트 케이스/구성편집하여 새 래퍼 템플릿을 추가하거나 모듈이 출력하는 메시지를 변경할 수 있습니다.
카테고리 추적
- 카테고리:표제 매개변수를 사용한 테스트 사례(21)
- 카테고리:출력 파라미터를 사용한 테스트 케이스(164)
--[[ 테스트 케이스 템플릿을 생성하기 위한 모듈입니다. 이 모듈에는 영어 위키피디아 "테스트 사례 표"의 코드가 포함되어 있습니다. 모듈, [1] Frietjes [2]에 의해 작성되었으며 Stradivarius [3]에 의해 기고되었다. Jackmcbarn, [4] 및 영어 위키피디아의 "테스트 케이스 행" 모듈, [5] 스트라디바리우스 씨가 썼죠 '테스트케이스 테이블' 및 '테스트케이스 행' 모듈은 CC BY-SA 3.0 라이선스[ 6 ]및 GFDL.[ 7 ] 라이선스: CC BY-SA 3.0 및 GFDL 작성자: Mr. Stradivarius [1] https://en.wikipedia.org/wiki/Module:Testcase_table [2] https://en.wikipedia.org/wiki/User:Frietjes [3] https://en.wikipedia.org/wiki/User:Mr._Stradivarius [4] https://en.wikipedia.org/wiki/User:Jackmcbarn [5] https://en.wikipedia.org/wiki/Module:Testcase_rows [6] https://en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License [7] https://en.wikipedia.org/wiki/Wikipedia:Text_of_the_GNU_Free_Documentation_License ]] -- 필요한 모듈을 로드합니다. 현지의 네, 아니요 = 요구하다('모듈:네, 아니요.) -- 상수 설정 현지의 데이터 모듈 = '모듈:템플릿 테스트 케이스/데이터' ------------------------------------------------------------------------------- -- 공유 메서드 ------------------------------------------------------------------------------- 현지의 기능. 메세지(자신, 열쇠, ...) -- 이 메서드는 에서 메시지를 처리해야 하는 클래스에 추가됩니다. -- config module 。 현지의 메시지 = 자신.cfg.메시지[열쇠] 한다면 선택한다.(1, ...) 그리고나서 돌아가다 음.메세지.new Raw Message(메시지, ...):평지() 또 다른 돌아가다 메시지 끝. 끝. ------------------------------------------------------------------------------- -- 템플릿 클래스 ------------------------------------------------------------------------------- 현지의 템플릿 = {} 템플릿.메모화된 방법 = { -- 각 오브젝트에 메모하는 메서드의 이름.이 테이블은 다음과 같은 경우에만 사용할 수 있습니다. -- 파라미터 없이 메서드를 유지합니다. get Full Page(풀페이지) = 진실의, getName = 진실의, makeheader(makeheader) = 진실의, getoutput = 진실의 } 기능. 템플릿.신규(호출 Obj, 옵션들) 현지의 obj = {} -- 입력 설정 위해서 k, v 에 쌍들(옵션들 또는 {}) 하다 한다면 것은 아니다. 템플릿[k] 그리고나서 obj[k] = v 끝. 끝. obj.호출 = 호출 Obj -- 입력 확인 한다면 것은 아니다. obj.템플릿 그리고. 것은 아니다. obj.직함 그리고나서 에러('템플릿 또는 제목이 지정되지 않았습니다.', 2) 끝. -- 고가의 메서드 호출 메모 작성 현지의 메모 펑크 = {} 돌아가다 설정 가능한(obj, { __인덱스 = 기능. (t, 열쇠) 한다면 템플릿.메모화된 방법[열쇠] 그리고나서 현지의 기능하다 = 메모 펑크[열쇠] 한다면 것은 아니다. 기능하다 그리고나서 현지의 값 = 템플릿[열쇠](t) 기능하다 = 기능. () 돌아가다 값 끝. 메모 펑크[열쇠] = 기능하다 끝. 돌아가다 기능하다 또 다른 돌아가다 템플릿[열쇠] 끝. 끝. }) 끝. 기능. 템플릿:get Full Page(풀페이지)() 한다면 것은 아니다. 자신.템플릿 그리고나서 돌아가다 자신.직함.프리픽스본문 그렇지 않으면 자신.템플릿:후보선수(1, 7) == '#자세히' 그리고나서 돌아가다 '모듈' .. 자신.템플릿:후보선수(8):서브(' .*', '') 또 다른 현지의 스트립 템플릿, 하스콜론 = 자신.템플릿:서브('^:', '', 1) 하스콜론 = 하스콜론 > 0 현지의 ns = 스트립 템플릿:경기('^(.-):') ns = ns 그리고. 음.위치.네임스페이스[ns] 한다면 ns 그리고나서 돌아가다 스트립 템플릿 그렇지 않으면 하스콜론 그리고나서 돌아가다 스트립 템플릿 -- 메인 네임스페이스 또 다른 돌아가다 음.위치.네임스페이스[10].이름. .. ':' .. 스트립 템플릿 끝. 끝. 끝. 기능. 템플릿:getName() 한다면 자신.템플릿 그리고나서 돌아가다 자신.템플릿 또 다른 돌아가다 요구하다('모듈:템플릿 호출').이름.(자신.직함) 끝. 끝. 기능. 템플릿:makeLink(메이크링크)(표시) 한다면 표시 그리고나서 돌아가다 string.format('[:%s %s]', 자신:get Full Page(풀페이지)(), 표시) 또 다른 돌아가다 string.format('[:%s]', 자신:get Full Page(풀페이지)()) 끝. 끝. 기능. 템플릿:makeBraceLink(표시) 표시 = 표시 또는 자신:getName() 현지의 링크 = 자신:makeLink(메이크링크)(표시) 돌아가다 음.본문.노우키('{{') .. 링크 .. 음.본문.노우키('}}') 끝. 기능. 템플릿:makeheader(makeheader)() 돌아가다 자신.표제 또는 자신:makeBraceLink() 끝. 기능. 템플릿:getInvocation(포맷) 현지의 호출 = 자신.호출:getInvocation{ 템플릿 = 자신:getName(), Magic Word가 필요 = 자신.Magic Word가 필요, } 한다면 포맷 == '코드' 그리고나서 호출 = '<코드>' .. 음.본문.노우키(호출) .. '/code>' 그렇지 않으면 포맷 == 'kbd' 그리고나서 호출 = '<kbd>' .. 음.본문.노우키(호출) .. '</kbd>' 그렇지 않으면 포맷 == '실패' 그리고나서 호출 = 음.본문.노우키(호출) 또 다른 -- 기본값은 pre 태그입니다. 호출 = 음.본문.부호화(호출, '&') 호출 = '<pre style="white-space: pre-param;">' .. 호출 .. '</pre>' 호출 = 음.get Current Frame(전류 프레임)():전처리(호출) 끝. 돌아가다 호출 끝. 기능. 템플릿:getoutput() 현지의 보호하다 = 요구하다('모듈:보호') --자기에게 전화한다._ 호출: get Output{...} 돌아가다 보호하다(자신.호출.getoutput)(자신.호출, { 템플릿 = 자신:getName(), Magic Word가 필요 = 자신.Magic Word가 필요, }) 끝. ------------------------------------------------------------------------------- -- Test Case 클래스 ------------------------------------------------------------------------------- 현지의 테스트 케이스 = {} 테스트 케이스.__인덱스 = 테스트 케이스 테스트 케이스.메세지 = 메세지 -- 메시지 메서드를 추가합니다. 테스트 케이스.렌더 메서드 = { -- 이 표의 키는 "format" 옵션 값이며 값은 -- 이 형식을 렌더링하는 메서드. 열 = '렌더 컬럼', 행 = '렌더로', 탭 = '렌더로', 인라인 = '렌더 인라인', 셀 = 렌더셀, 체납 = '렌더 디폴트' } 기능. 테스트 케이스.신규(호출 Obj, 옵션들, cfg) 현지의 obj = 설정 가능한({}, 테스트 케이스) obj.cfg = cfg -- 일반 옵션과 템플리트 옵션을 구분합니다.템플릿 옵션은 다음과 같습니다. --번호가 매겨진 반면 일반 옵션은 그렇지 않습니다. 현지의 일반 옵션, 템플릿 옵션 = {}, {} 위해서 k, v 에 쌍들(옵션들) 하다 현지의 접두사, 숫자 한다면 유형(k) == '문자열 그리고나서 접두사, 숫자 = k:경기('^(.-)([1-9][0-9]*)