Sessió B2: Facade, tests funcionals i associacions

Dimarts 30 de Novembre

Objectius

Patró Facade

Proveeix una interfície d'alt nivell a un conjunt d'interfícies (classes) d'un subsistema. Aquesta interfície d'alt nivell fa que el subsistema sigui molt més fàcil d'usar desde fora.

Alerta Facade i tests funcionals

Tots els tests funcionals que us donarem "atacaran" el sistema només a través del Facade. En canvi l'interior del sistema estarà cobert (testejat) pels vostres tests unitaris.

Per cert, la nostra classe Facade l'anomenarem AmalgamaOnline

Alerta Evolució dels tests

És important que tingueu en compte que mentre l'interfície del Facade es mantindrà força estable, la interfície de les classes interiors anirà evolucionant. I per tant, també els tests unitaris.

Exepcions

Alerta Un exemple de subclasse de std::exception
	class AutorNoTrobat : public std::exception
	{
	public:
		const char * what() const throw ()
		{
			return "Autor no existeix";
		}
	};

	

Tests d'Acceptació o Funcionals (propietat del client)

Al directori src/TestsFuncionals teniu els tests d'acceptació del client, que també anomenarem "funcionals". Recordeu que estem seguint una metodologia àgil. Hem estat planificant l'actual iteració de desenvolupament juntament amb el client, qui ens ha marcat les funcionalitats més prioritàries -- i nosaltres li hem dit fins on podíem arribar amb una iteració d'una setmana.

Conjuntament amb el client, hem escrit una sèrie de tests d'acceptació. D'aquesta manera tant el client com els desenvolupadors sabrem quin percentatge de funcionalitat hem assolit en tot moment.

Tests Funcionals vs Tests Unitaris

Tasques

  1. Anar descomentant i passant un a un els tests funcionals TestsAfegirAutorsIObres, alternant-ho amb anar afegint tests unitaris. Els tests unitaris els heu de pensar vosaltres. Tota funcionalitat de les classes hauria de quedar coberta per un test unitari.
  2. Si cal, perquè els tests funcionals ho demanen, modifiqueu els tests unitaris. En principi no us caldrà modificar massa coses.
  3. Portar la planificació del desenvolupament en un arxiu TODO (posar-lo al directori src/). de forma que en tot moment contingui les tasques a fer.
  4. Continueu fent commit al subversion molt sovint. Recordeu que apart d'evaluar el codi final, ens fixarem amb com que seguiu la metodologia

Valid XHTML 1.0!