모듈 토크:스크리쿤을 유닛으로 이동
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)
- 좋은 생각으로 들렸고 모듈에 유용할 것입니다.제가 지금 작업 중인 문서입니다. 그래서 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)
- 좋아요. 하지만 아마 이름을 붙여야 할 것 같아요.
- 좋아 보이네요, 감사합니다 :) 주장이 제대로 작동하는지, 진단 메시지가 좋아 보이는지 확인하는 페이지가 있나요?모듈을 찾지 못했습니다.유닛/테스트 사례에 스크리본. --Derbethtalk 20:01, 2014년 1월 2일 (UTC) [
델타 내에서 주장
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.title 라이브러리를 사용했습니다.제목 개체를 얻으려면 다음과 같은 코드를 사용해야 합니다.
현지의 샌드박스 = 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? 이 접근 방식을 사용하면 다음과 같은 이점을 얻을 수 있습니다.