From a testers point of view, unit testing should include cases for follwing some situations:
- Working of application with invalid data
- comparison of working of a module with similar module used at different place in the application.
- If during an operation, Yes/No/Cancel is prompted to the user then checking for each option in code when either is selected by user.
- transfer of data from one unit to another (e.g. output of one module is input to another)
- Supporting multiple users (if permitted)
- No data loss in case of abnormal termination of application.
Write Unit Test Cases, and then for each method look into the parameters that are used in them. Try to give lots of data that will make it fail, if the method is using a good Error header, check whether appropriate error comes.
Try to call the methods in an unsequential manner, and then finally give valid values, and also adhere to the requirements of that method, and check the result is what you expected.