A code coverage szam, mint olyan, szerintem nem sokat jelent. Huu, 100%-an vegigfutott a kodnak legalabb 1 teszt.. de le is ellenorizte, mit csinal?
Azonban a napokban rajottem, hogy mikor van ertelme ennek: A scriptnyelveknel. Csodalatosan ki lehet vele szurni a szintaktikai hibakat – az eloforditott nyelveknel erre nincs szukseg, hiszen ott a forditassal (gyakran a fejlesztessel) egyidoben megy a szintaktikai ellenorzes, de a scriptnyelveknel ez mar nem ilyen egyertelmu.
En most eppen Pythonban irom a keszulo alkalmazasom szerver reszet. Egyszeru, gyors, de scriptnyelv. Erdemes pylint-et hasznalni, es erdemes tesztelni. Ha lenne webes felulete, vsz igen meretes javascript programok is lennenek hozza. Ugyanez a helyzet, van jslint, es kell irni teszteket.
Na, ilyenkor jo a coverage.
Update: Egy kis magyarazat, hogy mirol is beszelek:
public class A() {
private int a = 5;
public int getA() { return a; }
public void setA(int a) {this.a = a; }
}
Erre a fentire igy is lehet 100%-os coverage-et csinalni:
@Test
public testA() {
// given
setupStuff();
// when
aInstance.getA();
aInstance.setA(8);
//then
// ..who cares?
}
holott valami ilyesmire lenne szukseg:
@Test
public testA() {
// given
setupStuff();
int firstInt = 34;
int secondInt = 45;
// when
aInstance.setA(firstInt);
int firstResult = aInstance.getA();
aInstance.setA(secondInt);
int secondResult = aInstance.getA();
//then
assertTrue(firstResult == firstInt);
assertTrue(secondResult == secondInt);
}
Es akkor tudjuk is, hogy mukodik.

