Właśnie napisałem prosty przykładowy kod, aby upewnić się, że zainstalowałem poprawnie EclEmma. Nie dostaję 100% pokrycia i nie rozumiem dlaczego. Podświetlenie oznacza, że ma to związek z nazwą klasy. Oto mój kod z odpowiednich testów JUnit, sposób EclEmma podświetlone go:Czy w pełni objęty kod ma wskaźnik zasięgu EclEmma mniejszy niż 100%?
Wyniki pokrycia pokazują, że trzy instrukcje w Arithmetic
nie trafiony, choć obie rzeczywiste metody wydają być całkowicie pokryte:
Czytałem the EclEmma documentation about basic block coverage, ale jestem wciąż zdezorientowany. Nie jestem pewien, które podstawowe bloki zostały pominięte. Na początku myślałem, że EclEmma może po prostu ignorować bajt kodu dla klas, ale wydaje się, że ArithmeticTest
jest w porządku.
Mam dwa ściśle powiązane pytania:
- Czy to wskazywać na problem z okazji I zainstalowane/skonfigurowane EclEmma?
- Czy to normalne/akceptowalne, że w pełni objęty kod ma wysoki, ale niezupełnie 100% wskaźnik zasięgu EMMA, a jeśli tak, jak to działa?
W rzeczywistości ma "blok tekstu", jest po prostu pusty. W bajtode, domyślny konstruktor jest tam, w linii zaznaczonej na czerwono przez EclEmma. Aby to zakryć i mieć zielony kolor, test musi wywołać konstruktora: 'new arithmetic()'. Oczywiście właściwym rozwiązaniem byłoby zadeklarowanie domyślnego konstruktora 'private' w klasie. –