Da un po’ di tempo mi sto appassionando allo sviluppo Test Driven. Certamente è una buona metodologia anche se credo abbia una pecca, si applica male negli ambienti che si conoscono poco. Spesso sono chiamato a sviluppare in ambienti che devo esplorare mentre porto avanti il lavoro, in questi contesti sviluppare facendo prima i test è quasi impossibile. Oggi tanto per sfizio mi sono divertito a scrivere il test automatico per un Table Model in Java. Mi sono limitato a testare i metodi che più spesso si overaidano di AbstractTableModel
Lo sottopongo:
public class OggettiTableModelTest {
private Oggetto primo;
private Oggetto secondo;
private List<Oggetto> lista ;public OggettiTableModelTest() {
}@BeforeClass
public static void setUpClass() throws Exception {
}@AfterClass
public static void tearDownClass() throws Exception {
}@Before
public void setUp() {
primo = new Oggetto(“ma che dici?”);
secondo = new Oggetto(“secondo oggetto”);
lista = new ArrayList<Oggetto>();
lista.add(primo);
lista.add(secondo);
}@After
public void tearDown() {
}/**
* Test of getRowCount method, of class OggettiTableModel.
*/
@Test
public void testGetRowCount() {
System.out.println(“getRowCount”);
OggettiTableModel instance = new OggettiTableModel(lista);
int expResult = 2;
int result = instance.getRowCount();
assertEquals(expResult, result);
}/**
* Test of getColumnCount method, of class OggettiTableModel.
*/
@Test
public void testGetColumnCount() {
System.out.println(“getColumnCount”);
OggettiTableModel instance = new OggettiTableModel(lista);
int expResult = 1;
int result = instance.getColumnCount();
assertEquals(expResult, result);
}/**
* Test of getValueAt method, of class OggettiTableModel.
*/
@Test
public void testGetValueAt() {
System.out.println(“getValueAt”);
int rowIndex = 0;
int columnIndex = 0;
OggettiTableModel instance = new OggettiTableModel(lista);
Object expResult = “ma che dici?”;
Object result = instance.getValueAt(rowIndex, columnIndex);
assertEquals(expResult, result);
}}
Immagino che i più esperti in TDD sicuramente facciano meglio di me spero che possa rislutare utile ai neofiti.
Nessun commento