CrashTest.Net verfügt über ein Code-Interface, mit dessen Hilfe eine programmatische Einbindung in vorhanden Test-Code möglich ist. So können auch eigene Äquivalenzklassen hinzugefügt werden, z.B. Objekte vom Typ Customer o.ä., mit denen dann die Testobjekte getestet werden können.

Als Beispiel soll es eine Klasse "Account" und eine Klasse "Customer" geben.

class Customer
{
     public string Name { get; set; }
     public string FirstName { get; set; }
}

class Account
{
     public string NameOwner { get; set; }
     public string FirstNameOwner { get; set; }

     public void SetAccountOwner( Customer customer )
     {
  NameOwner = customer.Name;
  FirstNameOwner = customer.FirstName;
     }
}

Um die Klasse "Account" nun mit CrashTest.Net und einem eigens dafür erzeugten Testobjekt zu testen, ist ein Verweis auf die "CrashTest.Net.exe" nötig. Der folgenden Code-Ausschnitte zeigen die Anbindung, das Hinzufügen von eigenen Testwerten, das Starten der Tests und die Auswertung der Tests.

// Erstellen einer neuen CrashTest-Instanz.
CrashTest.Net.Interface codeInterface = new CrashTest.Net.Interface();

// Hinzufügen des Testobjektes Customer. Hier wird ein Delegate übergeben,
// damit bei jedem Test eine neue Instanz erstellt werden kann.
codeInterface.AddEquivalenceClassFactory<Customer>( CreateCustomer );

// Methode, die mit CrashTest.Net und einem Objekt vom Typ customer getestet werden soll.
private Customer CreateCustomer()
{
  Customer c = new Customer();
  c.FirstName = "Max";
  c.Name = "Mustermann";
  return c;
}

Dieser Code erzeugt eine neue CrashTest.Net-Instanz und fügt den neuen Typ Customer zu den Äquivalenzklasen hinzu. Da ein Test eine Instanz von Customer verändern könnte, wird für jeden Test eine neue Instanz erzeugt.

Als Testobjekte können Assemblies, Typen, Methoden oder Konstruktoren hinzugefügt werden. Hierfür wurde die Methode AddTestObject mehrfach überladen.

// Hinzufügen eines Testobjektes (hier gesamter Typ "Account").
codeInterface.AddTestObject( typeof( Account ) );

Abschliessend müssen nur noch die Teste gestartet und danach ausgewertet werden.

// Ausführung des Codes.
codeInterface.RunTest();

// Abfragen der Testergebnisse.
foreach (CrashTest.Net.Interface.TestResult item in codeInterface.Results)
{
     if (item.HasException)
     {
       Console.WriteLine( item.Exception.Message );
     }
}