If wish to work on one of these, create a new sub-task from this one, assign it to yourself and submit the patch or commit it. make sure that if you create any new files to include the apache 2.0 license.
- There needs to be a running list of things to do/not to do with testing. I don't know if this goes in a jira or do we keep a running list on the wiki or site for people to pick up and help with.
- Tests need to run on mono and not Fail (there is a good deal of failing tests on mono, mostly due to the temp directory have the C:\ in the path).
- Assert.Throw<ExceptionType>() needs to be used instead of Try/Catch Assert.Fail. **
- File & Path combines to the temp directory need helper methods,
- e,g, having this in a hundred places is bad new System.IO.FileInfo(System.IO.Path.Combine(Support.AppSettings.Get("tempDir", ""), "testIndex"));
- We should still be testing deprecated methods, but we need to use #pragma warning disable/enable 0618 for testing those. otherwise compiler warnings are too numerous to be anywhere near helpful.
- We should only be using deprecated methods in places where they are being explicitly tested, other tests that need that functionality in order to validate those tests should be re factored to use methods that are not deprecated.
- Identify code that could be abstracted into test utility classes.
- Infrastructure Validation tests need to be made, anything that seems like infrastructure. e.g. does the temp directory exist, does the folders that the tests use inside the temp directory exist, can we read/write to those folders. (if a ton of tests fail due to the file system, we should be able to point out that it was due to permissions or missing folders, files, etc).
- Identify what classes need an interface, abstract class or inherited in order to create testing mocks. (once those classes are created, they should be documented in the wiki).
- fix rethrows inside try/catches that log information then rethrows the exception. i.e. use throw; instead of throw ex;
Note Assert.Throws needs to replace stuff like the following. We should also be checking the messages for exceptions and make sure they make sense and can help users fix isses if the exceptions are aimed at the library users.
catch (System.FormatException e)
/* expected exception */