Vous avez tous entendu parlé de entendu RPGUNIT
C’est un projet qui a eu plusieurs Vies, il existe même un plugin RDI et une extension vscode
C’est un projet qui permet de faire des tests unitaires sur des fonctions ILE
Il est basé sur les « assertions »
En informatique c’est une vérification intégrée dans le code qui s’assure qu’une condition spécifique est vraie à un moment donné de l’exécution du programme
Exemple :
2+2 ca doit faire 4
https://fr.wikipedia.org/wiki/Assertion
Voici un petit exemple
D’abord vous devez installer une version de la bibliothèque RPGUNIT sur votre systéme, cette bibliothèque contient le Framework qui va permettre de mettre en œuvre vos tests
Vous devrez avoir un programme service et connaitre la fonction à tester
Vous allez créer un programme de service spécifique qui va créer des surcouche à vos fonction
Exemple :
Fonction calcul dans votre application deviendra Fonction test_calcul dans le programme de service RPGUNIT
Votre programme CALCUL ici dans la bibliothèque DEMOUNIT
**free
ctl-opt nomain;
dcl-proc Addition export;
dcl-pi *n int(10);
a int(10) const;
b int(10) const;
end-pi;
return a + b;
end-proc;
Génération de votre programme de service
CRTRPGMOD MODULE(DEMOUNIT/CALCUL)
SRCFILE(DEMOUNIT/QRPGLESRC)
CRTSRVPGM SRVPGM(DEMOUNIT/CALCUL)
MODULE(DEMOUNIT/CALCUL)
EXPORT(*ALL)
Vous devrez coder un programme de service RPGUNIT qui ressemblera à ca
Une hypothèse avec un cas vrai et une erreur
**free
ctl-opt nomain;
/include RPGUNIT/QINCLUDE,ASSERT
dcl-pr Addition int(10);
a int(10);
b int(10);
end-pr;
dcl-proc testAddition export;
iEqual(
5 :
Addition(2:3)
);
end-proc;
// Test volontairement en erreur
dcl-proc testErreur export;
iEqual(
10 :
Addition(2:3)
);
Pour générer votre programme
CRTRPGMOD MODULE(DEMOUNIT/TESTCALC)
SRCFILE(DEMOUNIT/QRPGLESRC)
CRTSRVPGM SRVPGM(DEMOUNIT/TESTCALC)
MODULE(TESTCALC)
BNDSRVPGM(DEMOUNIT/CALCUL RPGUNIT/RUTESTCASE)
EXPORT(*ALL)
ou par RPGUNIT/RUCRTRPG , mais attention au liage ???
Vous devrez ensuite lancer le contrôle par la commande
==>RPGUNIT/RUCALLTST TESTCALC
Vous obtenez un spool RPGUNIT
Exemple :
*** Tests of TESTCALC ***
Date : 2026-07-23 / 15:41:45
Job : 935696/PLB/QPADEV002D
User : PLB
iRPGUnit : v6.0.0.v
IBM i : V7R6M0
Cur. library: PLB
Library list: 10 RPGUNIT 60 OUTILS
20 DEMOUNIT 70 TOOLS
30 QGPL
40 QTEMP
50 EXPLOIT
TESTERREUR - FAILURE
Expected 10, but was 5.
TESTERREUR (TESTCALC->TESTCALC:888)
Expected: 1 '10'
Actual: 1 '5'
-----------------------
FAILURE. 3 test cases, 2 assertions, 1 failure, 0 error.
ici on a bien validé nos 2 caseq
Les sources et outil de référence se trouvent ici
https://irpgunit.sourceforge.io/
https://github.com/Tools-400/irpgunit
Remarque :
Vous avez pouvez faire des choses plus évoluées et VSCODE vous offre un assistant pour générer le programme RPGUNIT de Test, mais je pense qu’il est important de comprendre ce qu’on fait
Les assertions sont inclues en standard dans la TR2 en V7R6 pour le RPGLE
https://www.ibm.com/support/pages/node/7276258
Site pour les extensions
iRPGUnit Plug-in Update Site RDi 9.6.0.13+
https://tools-400.github.io/irpgunit/update-site/eclipse/rdi8.0
Merci à Florian pour son aide !

