DUnit Testing in einem Midas / DataSnap Projekt
-
05-07-2019 - |
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
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.