( Hevi | 2018. 01. 02., k – 18:26 )

Ha a production kod szet van bontva, akkor a teszteket nem kell bontogatni, mert azok is csak par sorosak lesznek a mockok felsetupolasaval, asszertacioval egyutt.

Viszont ha ugy nez ki egy unit test, hogy


void test() {
  setUpMocksForXYTest();
  performTest();
  performAssertion();
}

az nem jo, mert ebben az esetben ugyan olvashato a kod, de a tesztkomplexitas el van rejtve egy masik szint ala. Ha ugy irod, hogy


void test() {
  // GIVEN
  ... lets setup the mocks/stubs/whateva ...

  // WHEN
  ... lets perform the test ...

  // THEN
  ... assert the result ...
}

akkor maris sikerult strukturalnod a unit tesztet az olvashatosag miatt, viszont mivel nem rejted el a komplexitast, igy ha a teszted mar szar karbantartani, akkor tudod, hogy valami buzlik a prod. kodban.

Az elso pelda tokeletes lehet BDD-re, ahol kulonbozo state-ket kell letrehozni/felsetupolni az integracios/end-to-end tesztekhez.