A wiesz jak w Visualu utworzyć test jednostkowy? Jak nie to tu masz jakiś link (pierwszy z brzegu, nawet nie sprawdzałem ale skoro od MS to chyba jako tako wytłumaczone):
https://msdn.microsoft.com/pl-pl/library/ms182532.aspx
Tak patrzę na ten kod i powiem, że najpierw to powinieneś go poprawić, bo ciężko jakiś test napisać. Weźmy np. taki Database. W konstruktorze na sztywno podałeś mu nazwę pliku .db (bardzo źle). Jak już tworzysz taki obiekt to w konstruktorze przekazujesz ścieżkę do tej bazy, a nie na sztywno to wpisujesz. Potem coś się zmieni i biblioteka do przebudowania. No i za ogólnie przechwytujesz te wyjątki. Exception bym używał tylko w głównym kodzie programu, no i poza tym masz typ MyException i nie ma w tej nazwie żadnej podpowiedzi co to za wyjątek. Jak już tworzysz typ wyjątku to korzystaj ze snippeta. W Visual Studio jak wpiszesz Exception i klikniesz dwa razy TAB to doda Ci odpowiedni kod, którego aktualnie brakuje w tej klasie MyException. Snippety to naprawdę fajna sprawa, piszesz pętle, ify itp. chwila i już masz cały blok kodu. Ale wracając do tematu no to np. żeby przetestować jakąś metodę czy rzuca odpowiedni wyjątek to masz tego typu kod:
[TestClass]
public class MailTests
{
[TestMethod]
[ExpectedException(typeof(MyException))]
public void SendMailTest()
{
Mail mail = new Mail("", "", "", "", true, 1);
mail.SendMail("", "", "");
}
}