Frage

Wie funktioniert ein Setup DUnit Testing in einem Midas / DataSnap Projekt in Delphi 2006

Bearbeiten

Wie kann man einen Dunit-Test in einen TRemoteDataModule einrichten Der Projekt-Assistent in Delphi 2006 nicht mit TRemoteDataModule arbeiten

War es hilfreich?

Lösung

Die Frage ist nicht ganz sinnvoll. Unit-Tests werden in einem separaten Projekt, nicht in Ihrem DataSnap-Server durchgeführt. Im allgemeinen Test, die mit einer Datenbank verbunden sind Integrationstests statt Unit-Tests. Was ist das genau, dass Sie testen? Wenn es Utility-Methoden ist in, sagen wir, ein TRemoteDataModule, sollten Sie diejenigen heraus in eine separate Klasse als Klassenmethoden extrahieren und sie dort testen. Sie sollten nicht einen Anwendungsserver instanziiert zu Unit-Tests durchzuführen.

Andere Tipps

Sorry für die lapidare Antwort oben, die iPad Beiträge, wenn ich Rückkehr zu schlagen, während ein Beitrag bearbeiten.

dunit ist so konzipiert, Unit-Tests durchzuführen, und was Sie versuchen, Unit-Tests zu tun, ist es nicht.

Ein Test ist kein Unit-Test, wenn:

  • Er spricht mit der Datenbank
  • Sie kommuniziert über das Netzwerk
  • Sie berührt das Dateisystem
  • Es kann nicht zur gleichen Zeit wie einer Ihrer anderen Unit-Tests
  • laufen
  • Sie haben spezielle Dinge für Ihre Umgebung (zB Bearbeitung von config-Dateien) zu tun, um es auszuführen.
  • Es kann nicht isoliert ausgeführt

Wenn Sie die SOLID Grundsätze (insbesondere die Einzel Verantwortung Prinzip) folgen, dunit mit Ihrer Klasse testen (ohne Prüfung der Midas / DataSnap bezogene Logik) sollte relativ einfach sein. Und wirklich, sollten Sie nicht brauchen die Midas / DataSnap Logik zu testen.

Aber es gibt Möglichkeiten, Integration und Verhaltenstests auf Delphi-Anwendungen auszuführen.

Persönlich würde ich nicht, weil es Testcomplete nicht gut mit jeder Art von CI-Server nicht integrieren und die Tests werden in einem speziellen binären Format gespeichert (die Unterschiede Verschmelzung oder Aufrechterhaltung Änderungen in einem beliebigen Quelle Steuerungssystem problematisch macht).

Sie könnten versuchen, dSpec , aber ich bin nicht sicher, Jody Dawkins es nicht mehr aufrechterhält.

Ich habe die AutoIt BASIC Skriptsprache direkt an einigen Projekten eingesetzt, und auch verwendet, um seine .NET-Assembly eine Delphi-Anwendung unter Verwendung von C # NUnit und auf einem anderen zu fahren. Zwar nicht perfekt war die NUnit / C # Lösung eleganter als alles, was ich für die Durchführung funktioneller / Verhaltenstests Delphi-Anwendungen gesehen hatte. Es hat einige Mühe, um es Setup zu bekommen though.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top