Vedere video: https://www.youtube.com/watch?v=9orsbO-4zzU&list=PLv6UtFrA7VEu4PtzJaGHHSeZBi6mdJtwv&index=7 Continuiamo a utilizzare TDD per creare la classe Book(). Quindi creiamo prima la classe BookTest() facendo right click > New > JUnit Test Case > ... nome BookTest. Questa volta lasciamo vuoto il campo "Class under test", quindi Eclipse crea una classe BookTest() vuota. Vogliamo che ci siano i campi title, author, person (la persona a cui è stati prestato il libro). Nella BookTest() vogliamo testare i costruttori (non ancora creati) di Book(). QUindi creo una istanza b1 di Book(): Book b1 = new Book("Great Expectations"); nota che differentemente dal caso di Person, qui mettiamo la stringa del titolo direttamente nella istanza, facendo insieme la creazione e l'assegnazione del valore del titolo. Per scrivere lo statement di controllo uguaglianza, scriviamo assertEquals("Great Expectations", b1.title); nota che non usiamo il get. Idem per l'autore: assertEquals("unknown author", b1.author); . Se facciamo girare il test (run as jUnit test) possiamo creare la classe Book() utilizzando il quick fix. Primo: create a Book class (attenzione a modificare il folder, non test ma src). Di nuovo, Book(String) non è definito, quindi facciamo creare in automatico a Eclipse i costruttori. Salviamo e torniamo a BookTest(). L'errore seguente è "title non è un campo", quindi lo creiamo. Analogamente per il field author. Tornando alla classe Book() creata in automatico, osserviamo la riga di commento TODO . E' una parola chiave per tenere traccia delle cose da fare. Osservando la view "Tasks" ritroviamo la stessa scritta. Rimuoviamo il TODO scrivendo i costruttori. this.title = string; (string è il parametro passato tra parentesi, che è appunto la stringa del titolo) this.author = "unknown author); . Creiamo ora i get e i set (Source > Generate Getters and Setters). Per author entrambi, mentre per title solo get, perché lo settiamo direttamente nel costruttore. Ricapitolando il Test First Approach:
- creiamo la classe TestBook()
- creiamo il metodo testBook() per testare i costruttori
- usiamo quick fix per creare la classe Book()
- creiamo i costruttori con il quick fix
- alla fine il JUnit test passa.