4.1. Writing Unit Tests

For every class that you want to test, you have to write a "test suite", which is a class (eg *TestSuite) that inherits from TestCase. Define a static property Suite in this class, which returns a new ITest object (generally a TestSuite object). Now write the test methods - for standard's sake, they have Test in their names. (TestXyzTest). Add every method to the TestSuite object.

Example:

using System; 
using TestingEnvironment.Framework; 
  
using SharpDevelop.Tool.Function; 
  
public class FileUtilityTestSuite : TestCase 
{ 
  
    public FileUtilityTestSuite(string name) : base(name) 
    { 
    } 
  
    public void TestAbsoluteToRelativePathTest() 
    { 
        AssertEquals(@".\b", FileUtility.AbsoluteToRelativePath(@"C:\test\a", @"C:\test\a\b")); 
        AssertEquals(@"..\b", FileUtility.AbsoluteToRelativePath(@"C:\test\a", @"C:\test\b")); 
        AssertEquals(@"D:\b", FileUtility.AbsoluteToRelativePath(@"C:\test\a", @"D:\b")); 
        AssertEquals(@".\testme.exe", FileUtility.AbsoluteToRelativePath(@"C:\test\a", @"C:\test\a\testme.exe")); 
    } 
  
    public void TestRelativeToAbsolutePathTest() 
    { 
        AssertEquals(@"C:\test\a\b", FileUtility.RelativeToAbsolutePath(@"C:\test\a", @".\b")); 
        AssertEquals(@"C:\test\b", FileUtility.RelativeToAbsolutePath(@"C:\test\a", @"..\b")); 
        AssertEquals(@"D:\b", FileUtility.RelativeToAbsolutePath(@"C:\test\a", @"D:\b")); 
        AssertEquals(@"C:\test\a\testme.exe", FileUtility.RelativeToAbsolutePath(@"C:\test\a", @".\testme.exe")); 
    } 
  
    public static ITest Suite { 
        get { 
            TestSuite suite = new TestSuite("My 1st Testsuite"); 
            suite.AddTest(new FileUtilityTestSuite("TestAbsoluteToRelativePathTest")); 
            suite.AddTest(new FileUtilityTestSuite("TestRelativeToAbsolutePathTest")); 
            return suite; 
        } 
    } 
}