w7sst / MorseRunner

Morse Runner Community Edition
Mozilla Public License 2.0
61 stars 12 forks source link

Initiate unit tests of the source code #108

Open tekenny opened 1 year ago

tekenny commented 1 year ago

Description

Where possible and appropriate add unit tests of the source code. Why - unit testing helps to improve quality by identifying failures as a result of changes to the code base.

Steps To Reproduce

None - no unit test currently exist

Expected behavior

Availability of a automated test suite to help ensure quality

Actual Behavior

Ability to run a test suite

Reproduces how often

Always

Version information

Additional context

TASKS

Can you help?

Please let us know if you are available to help. (replace '[ ]' with '[x]' to affirm)

w7sst commented 1 year ago

Hi Tom, I have identified two units that could benefit from Unit Testing. These are ARRL.pas (DXCC file support) and the new Cty.pas (under development) supporting the wl_cty.dat file. These both appear to be independent units that do not use other units. I could imagine that with some refactoring, we could create a common interface to define a common protocol used to look up DXCC-like information, including Country, Zone, prefix, etc. For now, starting unit testing with either module would be a good to start.

For others, if anyone is interesting in starting work on this, please let me know.

Thank you.

73, Mike W7SST

w7sst commented 3 weeks ago

@tekenny Hi Tom, Are you still available for some Unit Testing discussions and some code reviews. I'm working on #55 (ARRL Sweepstakes Contest). I am implementing a parser to handle the complex exchanges. When I got started, I developed some Unit Tests using DUnitX. It really helped out too. I have over 400 tests running right now.

I am about to start checking in the parser and the SS Contest code.

I was wondering if I could include you on these Unit Test code reviews. I would like your input.

Thank you.

73, Mike W7SST

w7sst commented 1 week ago

Starting with v1.85 development, several units now have corresponding Unit Tests. The goal should be anything units added to the new ./Util directory should have a corresponding unit test.

The unit tests are stored in a single directory ./Test and has a separate project file Test/UnitTest.dproj.

I will leave this Issue open because there is still more work to do. Next steps would be to find other packages that can be unit tested (see Task list above)