An RPGLE unit testing framework
This is the easiest way to obtain IBMiUnit; everyone has a Git client, right?
- Clone this repository:
git clone [email protected]:MarinaSchwenk/IBMiUnit.git
- Change directory into it:
cd IBMiUnit
- Use
gmake
(on yum asmake-gnu.ppc64
) to build IBMiUnit.
You can keep up-to-date with IBMiUnit by pulling from the repository and re-building.
- Create a save file on the IBM i, i.e.
CRTSAVF FILE(xxx/IBMIUNIT)
- Download
IBMIUNIT.SAVF
from the IBMiUnit repository - Choose one of the transfer options, then continue to part 2
- Copy the downloaded
IBMIUNIT.SAVF
to the IFS - Copy from the IFS to the *SAVF, i.e.
CPYFRMSTMF FROMSTMF('/path/to/file/IBMIUNIT.SAVF') TOMBR('/QSYS.LIB/xxx.LIB/IBMIUNIT.FILE') MBROPT(*REPLACE) CVTDTA(*NONE) ENDLINFMT(*FIXED) TABEXPN(*NO)
- Go to a command window on your PC
- Go to the location on the PC where
IBMIUNIT.SAVF
is located - Enter one of the following:
ftp (ibmi_ip_address)
orftp (ibmi_name)
- Enter your IBM i username and password for that system when prompted
- Ensure the transfer mode is binary (there will be no conversion) with
bin
- Go to the library on the IBM i where the save file is stored using something like
cd /QSYS.LIB/xxx.LIB
- Transfer the save file from the PC to the empty save file on your IBM i with
put IBMiUnit.savf IBMiUnit.savf
- When the transfer is complete, exit FTP with
quit
- Close the MS-DOS shell with
exit
- Create the library for the objects, i.e.
CRTLIB yyy
- Restore from the *SAVF, i.e.
RSTLIB SAVLIB(IBMIUNIT) DEV(*SAVF) SAVF(xxx/IBMIUNIT) RSTLIB(yyy) MBROPT(*ALL) ALWOBJDIF(*ALL)
ctl-opt bndDir( 'IBMIUNIT/IBMIUNIT' );
/copy IBMiUnit/QRPGLESRC,IBMiUnit_H
// test initialization/registration
IBMiUnit_setupSuite( 'TextUtil Tests' );
IBMiUnit_addTestCase( %pAddr( toUpperCase_fromLower ) : 'toUpperCase_fromLower' );
IBMiUnit_teardownSuite();
return;
// test cases
dcl-proc toUpperCase_fromLower;
assertCharEquals( 'MARINA SCHWENK'
: toUpperCase( 'marina schwenk' ) // defined in service program
);
end-proc;
A successful test example:
> ibmiunit/rununit qtehdr_t
All 2 tests ran successfully
A test with a failure:
> ibmiunit/rununit qtehdr_t
assertion failure in calculateSurcharges_changeOrder: Number of tariff
items expected:<1> but was:<2>
Done: 0 errors, 1 failures, 1 successful test(s)
(TODO)