Sto provando a eseguire il test retrospettivo dell'unità un'applicazione abbastanza complessa ma che utilizza MVC. So che applicare i test unitari in modo retrospettivo non è l'ideale, ma credo ancora che sia possibile rifattorizzando il codice esistente. Nella maggior parte dei casi non è possibile testare un'unità su un'unità, senza fare affidamento su altre unità, ad esempio una vista si basa su un modello.In che modo i test unitari possono essere modulari quando dipendono da altre unità?
Qual è il modo migliore per eseguire il test dell'unità in questo caso? È meglio utilizzare il modello reale o creare un modello fittizio?
Il problema con l'utilizzo di un modello reale nella mia situazione è che il modello si basa su altre classi di risposta che ottengono dati da XML, quindi c'è una catena di dipendenza. Questo modello ha molti dati quindi sarebbe molto più semplice da usare, ma forse mi manca il punto.
Ho fornito un UML dell'applicazione per brevità.
** Modifica ****
Ok, quindi se non sbaglio, è buona norma creare dati finti all'interno di una classe finta? Per esempio io ho la classe finta "MockPlaylistPanelModel" che crea i dati richiesti per la classe View "PlaylistPanel" per eseguire senza errori:
class MockPlaylistPanelModel extends Mock implements IPlaylistPanelModel
{
/**
* Return all playlist items
* @public
*/
public function get mainPlaylistItems():Vector.<PlaylistData>
{
var playData:Vector.<PlaylistData> = new Vector.<PlaylistData>;
var playlistResp:PlaylistData = new PlaylistData(0, "", "", 0, 0, 0, 0);
playData.push(playlistResp);
return playData;
}
}
+1 per il riferimento del libro, +1 per Mockito, +1 per una buona risposta - peccato posso solo votare una volta ... – weltraumpirat