Domanda

Come si imposta DUnit Testing in un progetto Midas / DataSnap in Delphi 2006

Modifica

Come si configura un Dunit Test in un TRemoteDataModule La procedura guidata di progetto in Delphi 2006 non funziona con TRemoteDataModule

È stato utile?

Soluzione

La domanda non ha del tutto senso. I test unitari vengono eseguiti in un progetto separato, non all'interno del server DataSnap. In genere, i test che si collegano a un database sono test di integrazione piuttosto che test unitari. Cos'è, esattamente che vuoi testare? Se si tratta di metodi di utilità all'interno, diciamo, di un TRemoteDataModule, dovresti estrarli in una classe separata come metodi di classe e testarli lì. Non è necessario creare un'istanza di un server applicazioni per eseguire unit test.

Altri suggerimenti

Ci scusiamo per la risposta concisa sopra, i post sull'iPad ogni volta che premo ritornano mentre modifico un post.

dUnit è progettato per eseguire test di unità e ciò che si sta tentando di fare NON è test di unità.

Un test non è un test unitario se:

  • Parla con il database
  • Comunica attraverso la rete
  • Tocca il file system
  • Non può essere eseguito contemporaneamente ad altri test unitari
  • Devi eseguire operazioni speciali nel tuo ambiente (come la modifica dei file di configurazione) per eseguirlo.
  • Non può funzionare in isolamento

Se segui i principi SOLID (in particolare il principio della responsabilità singola), usare dUnit per testare la tua classe (senza testare la logica relativa a Midas / DataSnap) dovrebbe essere ragionevolmente semplice. E davvero, non dovresti provare la logica Midas / DataSnap.

Ma ci sono modi per eseguire test di integrazione e comportamentali su applicazioni Delphi.

Personalmente, non userei TestComplete perché non si integra bene con nessun tipo di server CI e i test sono archiviati in un formato binario proprietario (che rende problematiche l'unione delle differenze o il mantenimento delle modifiche in qualsiasi sistema di controllo del codice sorgente).

Potresti provare dSpec , ma non sono sicuro che Jody Dawkins lo stia mantenendo più.

Ho usato il AutoIt il linguaggio di scripting BASIC direttamente su alcuni progetti, e ho anche usato il suo Assembly .NET per guidare un'applicazione Delphi utilizzando NUnit e C # su un'altra. Sebbene non perfetta, la soluzione NUnit / C # era più elegante di qualsiasi altra cosa avessi visto per eseguire test funzionali / comportamentali sulle applicazioni Delphi. Tuttavia, ci è voluto un po 'di tempo per installarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top