Warunkowe asserty + JUnit

0

Uzywam JUnit do napisania testow. Waliduje pola obiektu, na kazde pole jest regula (not null i odpowiednie
patterny). Uzywam glownie assertNotNull oraz assertTrue - gdzie wrzucam pattern.

Mam teraz pole ktore moze miec 3 wartosci. Jesli bedzie mialo inna, ma rzucac failed, jesli zas
bedzie mialo jedna z tych 3ech wartosci to ma ustawic odpowiednia (inna) wartosc.

pisanie kodu typu:

assertTrue(field.equals("A") || field.equals("B") || field.equals("C"));

nie do konca mi sie tu sprawdza. Bo kod ten sprawdzi mi tylko czy zmienna field ma wartosc A, B lub C.
A ja chce by jesli A to true i ustaw cos tam, jesli B to true i ustaw cos tam, jesli C to true i ustaw
cos tam innego. A jesli inna wartosc to test failed.

Da sie cos takiego zrobic?

pzdr,
misty

1

if (field.equals("A")) { ustawCostam(); }
else if (field.equals("B")) { ustawCostamInnego(); }
else if (field.equals("C")) { ustawCostamJeszczeInnego(); }
else {
assertFail();
}

0

no tak...
ale myslalam ze cos JUnitowego jest do takiego zastosowania. nie chcialam pisac ifow..

0

To co Ty chcesz robic to nie sa 'zwykle' asserty tylko asserty z akcjami - z tego co mi wiadomo nie ma czegos takiego w JUnit.

0

A ja bym się nie bawił w warunkowe asserty, bo tylko zaśmiecają kod.

@misty, napisz po ludzku trzy testy oddzielnie na każdy pattern.

@Test
public void shouldMatchPatternA(){

    asseertTrue(testedInstance.isValid(patternA);
    ustawWartośćDlaA();

}//...

jeżeli test się nie uda to metoda ustawWartośćDlaA() i tak nie zostanie wywołana.

Z innej beczki. Testy jednostkowe są wzajemnie niezależne, a skoro piszesz o ustawianiu wartości przez test to należy się zastanowić czy to są w ogóle testy jednostkowe.

1 użytkowników online, w tym zalogowanych: 0, gości: 1