을 구현하는 주장에서 진행 4GL
-
03-07-2019 - |
문제
가장 좋은 방법이 무엇인의 구현 션 를 사용하여 진행 4GL 또는 WebSpeed?
해결책
후에는 일부를 고려하여 여기에 내 문제를 해결하는 솔루션.그것은 작품에 따라 가정 개발 환경 propath 에서 다른 테스트 및 생산 환경 및 코드가 항상 다시 컴파일 테스트 또는 생산 사용:
&IF PROPATH MATCHES '*development*' &THEN
&SCOPED-DEFINE ASSERTION {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} {34} {35} {36} {37} {38} {39} {40} ~
{41} {42} {43} {44} {45} {46} {47} {48} {49} {50} ~
{51} {52} {53} {54} {55} {56} {57} {58} {59} {60} ~
{61} {62} {63} {64} {65} {66} {67} {68} {69} {70} ~
{71} {72} {73} {74} {75} {76} {77} {78} {79} {80}
IF NOT ({&ASSERTION}) THEN
MESSAGE "Failed assertion {&ASSERTION} in" PROGRAM-NAME(1).
IF ({&ASSERTION}) = ? THEN
MESSAGE "Unknown value as a result of assertion {&ASSERTION} in"
PROGRAM-NAME(1).
&ENDIF
코드입을 피하기 위해 설계된 모든 측면을 효과와 동일하게 작동합에서 실행 환경(GUI 또는 추이,WebSpeed,어플리케이션 배치합니다).
1)코드를 저장한 파일로"라고 주장"(확장자 없이).
2)파일이 디렉토리로 지적하여 PROPATH.
3)샘플을 사용:
{assert valid-handle(hProc)}
{assert i > 0 and i <= 100}
{assert cExtra begins ‘opt’} /* note the single quotes */
{assert dtEnd > = dtStart}
변형으로 그것을 피하기 위하여 가능한에 의존하 propath 모두 함으로써 빈 포함한 파일에서 테스트 및 생산 환경,개발자 버전이 될 것이다 그냥:
&SCOPED-DEFINE ASSERTION {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} {34} {35} {36} {37} {38} {39} {40} ~
{41} {42} {43} {44} {45} {46} {47} {48} {49} {50} ~
{51} {52} {53} {54} {55} {56} {57} {58} {59} {60} ~
{61} {62} {63} {64} {65} {66} {67} {68} {69} {70} ~
{71} {72} {73} {74} {75} {76} {77} {78} {79} {80}
IF NOT ({&ASSERTION}) THEN
MESSAGE "Failed assertion {&ASSERTION} in" PROGRAM-NAME(1).
IF ({&ASSERTION}) = ? THEN
MESSAGE "Unknown value as a result of assertion {&ASSERTION} in"
PROGRAM-NAME(1).
는 별도의 팁을 추가하는 것이 자동 텍스트 매크로를 당신의 선택의 편집자 하는 것이 자동으로 확장{assert}.
다른 팁
이후 진행되지 않는 기본 처리를 주장하지만,가 함께 왔어입니다:
IF NOT <assertion> THEN
RUN assertionFailed.p.
assertionFailed.p 이메일을 보낼 수 있는 프로그래머거나,로그인 조건과 또한 정상적으로 종료.
주어진 주장은 일반적으로 생략하면서 최종 코드가 나는 전처리기 경로입니다.당신이 할 수 있는 다음과 같이 설정으로 두 개의 파일이 포함됩니다.컴파일할 경우를 생산하는지 확인 debugalert.나이 비어 있습니다.assert.가 될 수 있는 편집하여 무엇이든 당신이 좋아하는 메시지,정지,이메일 등등...
을 설정하는 주장을 따라 형식{assert.내 건=}
/*assert.i*/ {debugalert.i}
&정의된 경우(DEBUGALERT) <>0&다음
하지 않을 경우{&건} 다음을 수행:
MESSAGE THIS-PROCEDURE:FILENAME "ERROR...{&CONDITION}"
VIEW-AS ALERT-BOX.
/* add code to email message etc.. or stop */
끝.
&ENDIF
/*debugalert.나는 테스트는 개발 환경 를 끄는 주장이 제거 문*/
및 글로벌 정의 DEBUGALERT
/*테스트 코드에서 당신은 그냥 그렇게 다음과 같다: / / 테스트 assertion*/
DEF VAR h_ct INT 없는 취소 INIT10.
{assert.내 건="h_ct=8"}
OpenEdge11.6 도입 유닛 테스트의 세계 ABL.그 느슨하게 JUnit 기반으로 주체가 있습니다.션은 그러므로 지금은 패키지의 일부입니다.자세한 정보는 설명서: https://documentation.progress.com/output/ua/OpenEdge_latest/index.html#page/pdsoe/overview-of-ablunit-testing-framework.html