모듈 토크:스크리쿤을 유닛으로 이동

Module talk

문자열에 예상 텍스트가 포함되어 있는지 테스트합니다.

문자열에 예상 텍스트가 포함되어 있는지 확인하는 어설션이 필요하다고 생각합니다.동기 부여는 다음과 같습니다. 테스트 방법이 아니라 행동을 테스트해야 하며테스트 방법은 한 가지만 테스트해야 합니다.복잡한 모듈이 있다고 가정합니다(pl:Moduw:Koordynaty), 1) 형식화된 링크 추가 2) 형식화된 텍스트 출력 3) 페이지를 계산된 범주에 추가합니다(그리고 아마도 우리가 예측할 수 없는 다른 일들을 할 것이며, 우리는 단지 모듈 출력이 증가했다고 해서 사람들이 다른 모든 기능에 대한 주장을 수정하기 위해 하나의 새 기능을 추가하는 것을 원하지 않습니다.적절한 단위 검정을 작성하려면 각각 하나의 기능만 검사하고 다른 기능은 검사하지 않는 세 가지 검정 방법을 작성해야 합니다. 따라서 기능이 하나만 손상된 경우에는 하나의 검정만 실패하고 다른 검정은 실패하지 않습니다.이를 위해서는 다음과 같은 방법이 필요합니다.

그렇다고 단언합니다.(좌표.발동.("53 45", "23 45"), 포함String("geohack/53.45W_23.45E/타입:도시")) 

모듈 출력의 일부를 확인하고 나머지는 신경 쓰지 않는 경우.또한 다중 라인 출력을 생성하는 모듈도 있습니다.테스트는 읽을 수 있어야 하고 관련된 것만 확인해야 합니다.따라서 "문자열 포함" 어설션이 유용합니다.

JUNit에서는 AssertTrue()를 사용하여 "assertContains"가 부족한 경우 어설션이 실패할 때 표시되는 사용자 지정 메시지와 함께 처리할 수 있습니다.여기서는 실패 메시지를 전달할 방법이 없습니다.그러므로, 주장합니다.ScribuntoUnit의 True는 의미 있는 오류 메시지가 없으므로 "포함 문자열" 어설션을 구현하는 데 적합하지 않습니다.

저는 새로운 방법 "assertContains"를 추가하거나 오류 메시지와 함께 "assertTrue"를 확장하거나 둘 다 수행할 것을 제안합니다. --Derbeth 21:40, 2014년 1월 1일 (UTC)Reply[Reply]

좋은 생각으로 들렸고 모듈에 유용할 것입니다.제가 지금 작업 중인 문서입니다. 그래서 assertContains 메서드를 추가했습니다.보시고 개선할 수 있는 방법이 있으면 알려주시기 바랍니다.Stradivarius♪ talk ♪ 씨, 2014년 1월 2일 16:32 (UTC) 회신 [회신]
좋아 보이네요, 감사합니다 :) 주장이 제대로 작동하는지, 진단 메시지가 좋아 보이는지 확인하는 페이지가 있나요?모듈을 찾지 못했습니다.유닛/테스트 사례에 스크리본. --Derbethtalk 20:01, 2014년 1월 2일 (UTC) 회신 [회신]
좋아요. 하지만 아마 이름을 붙여야 할 것 같아요.assertStringContains나중에 테이블에 주어진 테이블 키가 포함되어 있는지 확인하는 방법을 구현하는 경우?그리고 네, 우리는 주장에 대한 테스트도 해야 합니다.테스트 모듈에 적합한 테스트를 작성하는 방법은 잘 모르겠지만 모듈에 대한 실험을 시작했습니다.유닛/테스트 사례로 이동합니다.Danmichaelo (대화) 2014년 1월 3일 08:42 (UTC) 응답 [응답]
그래서 이름이 바뀌었습니다.그럴만한 이유인 것 같군요.Stradivarius♪ talk ♪ 씨, 2014년 1월 3일 14:05 (UTC) 회신 [회신]
자동화된 테스트가 필요하지만 실제로 모듈이 어떻게 작동하는지에 대한 시각적인 프레젠테이션도 필요하다고 생각합니다.다음과 같은 페이지를 만들었습니다.모듈:Unit/showcase(대화 페이지에서 실행)로 이동합니다.만약 내가 잘못된 것을 발동하지 않았다면, 그것은 assertInseltDelta는 사용자 지정 메시지를 무시합니다.게다가, 테스트 방법은 특별한 순서로 실행되지 않습니다. 어떻게 할 수 있을까요? -- Derbethtalk 21:08, 2014년 1월 3일 (UTC)응답[응답]
동의합니다. 쇼케이스 페이지는 좋은 생각입니다.서로 다른 방법 간에 출력이 그다지 일치하지 않는 것 같습니다. 실패할 경우 일부 방법에는 "실제" 및 "예상된" 방법이 포함되는 반면 다른 방법에는 그렇지 않은 경우가 있습니다."실제" 및 "예상"이 포함된 경우 "메시지"는 표시되지 않습니다.이것은 우리가 두 개의 열을 하나의 열로 바꾸는 것이 더 나을 수도 있다는 생각을 하게 합니다.모듈을 업데이트했습니다.유닛/샌드박스모듈 토크로 이동합니다.Unit/showcase로 이동합니다.당신은 어떻게 생각하나요?Danmichaelo (대화) 18:21, 2014년 1월 5일 (UTC) 응답 [응답]
샌드박스 코드를 조금 수정했습니다.지금이 좋아요. --Derbethtalk 10:31, 2014년 1월 6일 (UTC) Reply [Reply]

델타 내에서 주장

assert DeltaContains에 대한 문서는 assert를 포함합니다.델타 내에서는 "1/3 == 9/3은 거짓으로 평가되지만..."이라고 말합니다.이는 완전히 다른 숫자이기 때문에 명백한 결과입니다.이것은 "1/3 == 3/9 evaluate as false"의 오타인 것 같습니다. 하지만 방금 디버그 콘솔에서 이를 시도해 보니 true로 평가되었습니다.부동 소수점 오류를 보여주는 데 사용할 수 있는 더 좋은 예가 있습니까?개인적으로 스크리분토에서는 아직 액션을 본 적이 없어서 좋은 액션이 생각나지 않습니다.Stradivarius♪ talk ♪ 씨, 2014년 1월 3일 14:02 (UTC) 회신 [회신]

사실, 그것은 완전히 잘못된 예였습니다 :) 저는 새로운 것을 추가했고, 디버그 콘솔에서 그것을 테스트했습니다.그런데, 제가 방법을 추가한 이유는 문제가 발생하지 않았기 때문입니다.모듈: 틸러를 조정/테스트합니다.Danmichaelo (대화) 00:45, 2014년 1월 5일 (UTC) 회신 [회신]
해결해 주셔서 감사합니다. :) 실제 예제에서 부동 소수점 오류가 어떻게 작동하는지 보는 것은 흥미롭습니다.저는 문서에 사본 편집을 제공했고 정수가 2^53까지 정확하게 표현될 수 있다는 점에 주목하기 위해 문서를 조금 확장했습니다.원한다면 자유롭게 수정하세요.Stradivarius♪ talk ♪ 씨, 2014년 1월 5일 11:48 (UTC) 회신 [회신]

테이블 표시

현재 두 개의 다른 테이블에서 동일성을 테스트한 경우 모듈에서 생성된 Wikitable은 두 테이블을 모두 "테이블"로 나열하기만 하면 됩니다.표의 내용을 상당히 좋은 형식으로 실제로 보여주면 좋을 것 같습니다.모듈을 사용하여 다음과 같은 작업을 수행할 수 있습니다.사용자:Anomie/deepToString 및/또는 mw.logObject?deepToString은 mw.title 개체를 표시하려고 하면 실패하고 mw.logObject가 개체를 정상적으로 처리하지만 로그 버퍼로만 출력합니다.그래서 우리는 우리의 목적에 맞는 것을 얻기 위해 약간의 조정을 해야 할 필요가 있지만, 아마도 그렇게 어렵지는 않을 것입니다.스트라디바리우스♪ talk ♪ 씨, 2014년 1월 5일 12:00 (UTC) 회신 [답장]

흠, 어떻게 실패합니까?Module_talk에서 mw.title을 사용해 보았습니다.Unit/showcase에 스크리번을 하세요, 그리고 그것이 작동하는 것처럼 보이지만, 저는 그것에 익숙하지 않습니다. – Danmichaelo (대화) 18:47, 2014년 1월 5일 (UTC) 응답 [응답]
제목 개체가 아닌 mw.title 라이브러리를 사용했습니다.제목 개체를 얻으려면 다음과 같은 코드를 사용해야 합니다.mw.title.new('Wikipedia:Sandbox')쇼케이스 모듈에서 그렇게 하려고 했는데 전체 스크립트가 "메모리 부족" 오류와 함께 실패했습니다.문제는 제목 개체 필드 중 일부가 자체 참조라는 것입니다.예:
현지의 샌드박스 = mw.제목.신규('위키피디아:샌드박스') 위키백과의 제목 개체:샌드박스]] 샌드박스.기본 페이지 제목 또한 위키백과의 제목 개체:샌드박스]] 샌드박스.기본 페이지 제목.기본 페이지 제목 다시, 동일한 제목 개체입니다. 
따라서 메타테이블을 존중하면서 주어진 제목 객체를 통해 반복적으로 시도하고 반복한다면, 당신은 영원히 계속될 것입니다.스크리분토는 메모리 한계에 도달하면 사망합니다.이 문제는 mw.logObject에서 어떻게든 해결되었지만 코드를 자세히 살펴보지 않아서 정확히 무엇이 수행되었는지 알 수 없습니다.Stradivarius 씨, 2014년 1월 6일 11:06 (UTC) 회신 [회신]

장애 범주, 구성 모듈

@Luis150902: 최근 모듈 구성을 변경해 주셔서 감사합니다.얼마 전에 저는 이 모듈을 영어 위키백과에서 사용할 수 있도록 개조했습니다.한 가지 부족한 점은 테스트 페이지가 실패 시 자동으로 할당되는 카테고리였습니다.이제 이 설정을 구성 가능한 설정으로 추가할 수 있습니다.또한 구성을 다음으로 이동할 것을 제안합니다.Module:ScribuntoUnit/configuration모듈을 그대로 복사할 수 있도록 합니다.제이베르켈 (talk) 2018년 2월 26일 05:22 (UTC) 회신 [답장]

@Jberkel: Done Luis150902 (대화 기여) 18:35, 2018년 2월 26일 (UTC) 회신 [회신]

이 모듈을 국제화하는 중

안녕하세요, 모듈을 사용하여 이 모듈을 다국어로 만드는 작업에 관심 있는 사람이 있습니까?TNT? 이 접근 방식을 사용하면 다음과 같은 이점을 얻을 수 있습니다.

  • 글로벌 변환 테이블을 사용하여 모든 Wiki에서 동일한 코드 사용
  • 구성 하위 모듈 필요 없음 - 변환 테이블보다 저장할 수 있음
  • 일단 동기화되면 다국어 배포 시스템으로 동기화를 유지하는 것이 더 쉬워집니다.

-- 유리크 (대화) 2019년 5월 5일 22:25, 5일 (UTC) 회신 [답장]