문제

가장 좋은 방법이 무엇인의 구현 를 사용하여 진행 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top