Project-Runway / TA-Lib

TA-Lib
http://projekt-stats.esy.es/
0 stars 1 forks source link

INFO DLA TESTERÓW: Jak testować by pokrycie kodu było jak największę? Sprawdzajcie czy wyjątki działają poprawnie. #8

Open XubeiX opened 9 years ago

XubeiX commented 9 years ago

By pokrycie kodu wyniosło w danej metodzie 100% należy również sprawdzić wyjątki tej metody. A mianowicie niektóre metody zwracają wyjątki w postaci

Lista wyjątków jakie możecie spotkać. RetCode.BadParam RetCode.OutOfRangeStartIndex RetCode.OutOfRangeEndIndex RetCode.AllocErr RetCode.InternalError

W przypadku gdy ominie się sprawdzanie czy dane wyjątki działają poprawnie, pokrycie kody może wynosić np. 74% jak dla metody SMA. image

By poprawić ten wynik należy sprawdzić czy metoda działa dobrze i zwraca te wyjątki jak np. indeks startowy jest ujemny. Wtedy metoda powinna zwrócić błąd w postaci RetCode.OutOfRangeStartIndex

Przykład: RedCode rb = core.sma(-10, 99, inputsinReal, 100, outBegIdx, outNBElement, outReal); assertEquals(RetCode.OutOfRangeStartIndex.toString(),rb.toString());

Po dodaniu tych dwóch linijek pokrycie kodu metody wzrasta do 80%.

ZajdelBiznesmen commented 9 years ago

Nie tylko wyjątki z RedCode'a trzeba sprawdzić.

W niektórych funkcjach są If'y które zmieniają return'a i je też trzeba sprawdzić czy działają.

Dorzucam przykład(mam nadzieję ze poprawny, jak nie to zbesztać):

Opis w klasie Core: przyklad

Rozwiązanie w teście: przyklad2

XubeiX commented 9 years ago

Potwierdzam. W niektórych metodach tak jest, że if zmienia wynik i to też należy sprawdzić. Częściej występuje to w metodach Lookback.

Pamiętajcie również, że każda metoda występuje w dwóch wariantach jedna dla tablicy double[] a druga na float[]. Sprawdzić należy obie.