### General testing tips Define a "testing" conditional symbol at compile time: nim --define:testing main.nim ``` Nim when defined(testing): # testing-related code else: # production code ``` ### Unit testing Use http://nim-lang.org/unittest.html[unittest] Write your unit test first. Write all of them first! They should fail 100%. Then write your codes. If your codes are correct then when you run your unit tests again they should all pass 100%. If your unit tests do not pass 100% but only pass like 25% then you have error in your codes! Fix your codes and run your unit tests again. Keep fixing codes until the unit tests are 100%. You can remember it by the thinking of : RED :red_circle:, REFACTOR :factory:, GREEN :green_heart:! Go for the green! ### Functional and integration testing TODO ### Code coverage Try to test every path of execution in your softwares. That is the key to maximizing your code coverages. TODO