Ce model bun aranja, act, afirma și dacă să-l utilizați întotdeauna stiva de preaplin în limba rusă

Eu văd în acest model este doar un singur avantaj: îmbunătățește lizibilitatea. Și mai mult decât minusuri:

În primul rând, nu se îmbunătățește întotdeauna lizibilitatea. Iată un test simplu:

În schimb, am putut scrie acest lucru:

Sunt afectat lizibilitatea?

În al doilea rând. Acum, ce să facă cu aluatul?

Este, de asemenea, crea 2 variabile booleene, și apoi să le compare?

In al treilea rand. În opinia mea, acest model complică scrierea unor teste. De exemplu:

31 este stabilit la 06:30 pe Mar '16

În orice model puteți găsi întotdeauna un caz în care se pare ridicol. Cred că tocmai ți-a dat un exemplu.

Studii clasice de model 3A (da, așa că el a scris - trei A), după cum urmează:

  • Codul este împărțit în trei părți logice.
  • Funcția de testare testează două lucruri în mod clar, fără efecte secundare.

analiza primul test:

În al doilea rând, aici este ceea ce face cu aluatul?

Și acest test trebuie doar să scrie corect. undeva asa

Vezi diferenta? Fără tip res variabilă. în cazul în care valoarea nu este clar. De asemenea, în cazul în care lista nu ar trebui să fie gol, atunci este necesar să se testeze, și nu invers (a se vedea, am schimbat chiar numele testului).

Și acum, uita-te la ultimul test

Acest test poate fi rescris modul prin ciclul și odată ce el încetează mai frumos și mai ușor. Și nu este nevoie pentru a crea o grămadă de variabile.

Acum, dacă doriți să adăugați mai multe valori de testare de 5-6, este foarte simplu.

Părerea mea personală. În interiorul funcțiilor de testare (de exemplu, assertEquals și similare) nu ar trebui să fie construcții complicate. Apoi, acestea sunt teste unitare care ar testa unitatea minimă de cod. Și dacă dimensiunea este încă așa, de exemplu, metodele care modifică obiectul - nr.

Dacă am o situație pe care am nevoie de prodebazhit funcție / metoda pe care am testat, acesta este primul apel, funcția este complexă și este necesar să se rupă sau rescrie. În cazul în care testul își încetează foarte mare (și se plâng de el), atunci testul este scris este greșit - ar trebui să fie să fie împărțită în două mai mici, fie pentru a scrie corect (I, de exemplu, în argumente pro place să facă macro :)).

Dar, în orice caz, nu este necesar să sufere modele ale creierului și să le aplice peste tot. Trebuie să le aplice după cum este necesar.

N-am scris în Java, astfel încât codul poate fi erori minore.