-- 필요한 모듈을 로드합니다. 현지의 체크 DYKHook = 요구하다('모듈:DYK 후크/샌드박스 확인') 현지의 스크리분토 유닛 = 요구하다('모듈:스크리분토 유닛') -- 테스트 스위트 초기화 현지의 스위트 = 스크리분토 유닛:신규() -------------------------------------------------------------------------------- -- 도우미 메서드 -------------------------------------------------------------------------------- 현지의 기능. make Frame With Args(args) 현지의 틀 = 음.get Current Frame(전류 프레임)() 돌아가다 틀:새로운 아이{args = args} 끝. 기능. 스위트:assertErrorMessage 포함(기능하다, expected Message(예상 메시지)) 현지의 성공., 실제 메시지 = pcall(기능하다) 자신:assert False(거짓)(성공.) 자신:assert String 포함(expected Message(예상 메시지), 실제 메시지, 진실의) 끝. -------------------------------------------------------------------------------- -- p._isValid 테스트후크 -------------------------------------------------------------------------------- 현지의 module Test Data(module Test Data) = { { 테스트명 = "테스트가 유효합니다.후크_반환True_ForHooks Starting With That", 후크 = "... 그 푸 바 바즈?", 기대됩니다 = 진실의, }, { 테스트명 = "테스트가 유효합니다.후크_반환True_ForHooks StartingWithAbout", 후크 = "... 푸 바 바즈요?", 기대됩니다 = 진실의, }, { 테스트명 = "테스트가 유효합니다.Hook_ReturnsFalse_ForHooksStartingWithOtherWords", 후크 = "... 푸 바 바즈?", 기대됩니다 = 거짓의, }, { 테스트명 = "테스트가 유효합니다.후크_반환True_ForHooks Ending WithAQuestion Mark(AQuestion Mark), 후크 = "... 그 푸 바 바즈?", 기대됩니다 = 진실의, }, { 테스트명 = "테스트가 유효합니다.후크_반환True_ForHooks Ending WithAQuestion Mark(AQuestion Mark)HTMLE 부호화내부 ASPAN", 후크 = '... 그 foo bar [[ baz < span class = " something " > baz ? </span > ]]', 기대됩니다 = 진실의, }, { 테스트명 = "테스트가 유효합니다.후크_반환True_ForHooksEndingWithYou아마 그랬을 겁니다., 후크 = '... 그 푸 바 바즈?아마 그랬겠지...', 기대됩니다 = 진실의, }, { 테스트명 = "테스트가 유효합니다.Hook_ReturnsFalse_ForHooksNotEndingAQuestion Mark(AQuestion Mark), 후크 = '... 저 푸 바 바즈', 기대됩니다 = 거짓의, }, } 위해서 _, 테스트 데이터 에 아이페어(module Test Data(module Test Data)) 하다 스위트[테스트 데이터.테스트명] = 기능.(자신) 현지의 결과 = 체크 DYKHook._isvalid후크(테스트 데이터.후크) 한다면 테스트 데이터.기대됩니다 그리고나서 자신:assert True(참)(결과) 또 다른 자신:assert False(거짓)(결과) 끝. 끝. 끝. 기능. 스위트:test Is Valid(유효한 테스트 유효)후크_RaisesError_Hook Is Not AString의 경우() 자신:assertErrorMessage 포함( 기능. () 체크 DYKHook._isvalid후크(7) 끝., '_isValid'에 대한 잘못된 인수 #1 ~ _isValid후크' (문자열 예상, 번호 획득) ) 끝. -------------------------------------------------------------------------------- -- p.isValid 테스트후크 -------------------------------------------------------------------------------- 현지의 템플릿테스트 데이터 = { { 테스트명 = "testTemplateIsValid"후크_반환Yes_ForHooks Starting With That" (예), args = {"... 그 푸 바 바즈?"}, 기대됩니다 = "네", }, { 테스트명 = "testTemplateIsValid"Hook_ReturnsBlank_ForHooksStartingWithOtherWords", args = {"... 푸 바 바즈?"}, 기대됩니다 = "", }, { 테스트명 = "testTemplateIsValid"후크_반환○_ForHooks화이트 스페이스 포함", args = {"\n...그 푸 바 바즈? \n"}, 기대됩니다 = "네", }, { 테스트명 = "testTemplateIsValid"Hook_ReturnsBlank_ForInvalidHooks With White Space", args = {"\n...그 푸 바 바즈\n"}, 기대됩니다 = "", }, { 테스트명 = "testTemplateIsValid"후크_반환○_ForHooks Ending WithAQuestion Mark(AQuestion Mark)HTMLE 부호화내부 ASPAN", args = {'... 그 foo bar [[ baz < span class = " something " > baz ? </span > ]]'}, 기대됩니다 = "네", }, { 테스트명 = "testTemplateIsValid"후크_반환○_ForHooks Ending WithAQuestion Mark(AQuestion Mark)HTMLE 부호화Inside ASPAN With Whitespace", args = {'\n...그 foo bar [[ baz < span class = " something " > baz & # 63 ; / span >]\n'}, 기대됩니다 = "네", }, { 테스트명 = "testTemplateIsValid"Hook_ReturnsYes_WhenCalledWithValidHookWithHookKeywordArgument", args = {후크 = "... 그 푸 바 바즈?"}, 기대됩니다 = "네", }, } 위해서 _, 테스트 데이터 에 아이페어(템플릿테스트 데이터) 하다 스위트[테스트 데이터.테스트명] = 기능.(자신) 자신:assert Equals(동일)( 체크 DYKHook.isValidHook(make Frame With Args(테스트 데이터.args)), 테스트 데이터.기대됩니다 ) 끝. 끝. 기능. 스위트:testTemplateIsValid후크_RaisesError_NoHook 제공 시() 자신:assertErrorMessage 포함( 기능. () 체크 DYKHook.isValidHook(make Frame With Args{제로}) 끝., "지정된 후크 없음" ) 끝. 돌아가다 스위트