Cum de a găsi erori în cod - ajutor hexlet

Codul pe HEXSULT este verificat folosind așa-numitele teste automate. Ele sunt de obicei scrise în aceeași limbă ca și codul însuși. Principiul general al acestui tip de testare este destul de simplu. Programul care urmează să fie testat este încărcat în memorie și apelat cu parametri diferiți, iar testele se asigură că comportamentul său este cel așteptat.

Când codul nu trece testul, se spune că testele au scăzut. În acest moment distracția începe. Este necesar să înțelegem unde și de ce a apărut eroarea. Iar încheierea testelor în acest proces joacă un rol cheie, este principalul asistent și dirijorul. Dar este nevoie de o anumită abilitate pentru a începe să tragă concluziile corecte din ceea ce scriu testele.

aprobare

O afirmație este o încercare (funcție) care cheamă codul dvs. cu anumiți parametri și verifică faptul că funcția returnează rezultatul așteptat. De exemplu:

Cel mai important: dacă testele au căzut pe declarație, înseamnă că codul a funcționat cel puțin, dar rezultatul nu se potrivește cu cel așteptat. Și de multe ori se întâmplă ca o parte din aprobare să treacă, adică codul returnează rezultatul corect și unele verificări nu trec (de obicei în cazuri limită). În cele din urmă, scăderea testului pe declarație indică faptul că codul are o eroare logică (o eroare în calcule).

Concluzia în acest caz pare ceva de genul:

Concluzia poate fi împărțită în două părți. Primul este un mesaj text care descrie ceea ce se aștepta (din funcție) și ceea ce a fost primit. Detaliile producției depind de tipul de afirmație și de capacitățile mediului de testare. În codul de mai sus, acesta este șirul AssertionError: 3 == 1. Se citește astfel: "Era de așteptat ca funcția să returneze 3, dar a returnat 1". Acest lucru este deja bun, dar aș dori, de asemenea, să văd parametrii cu care a fost apelată funcția. Și a doua parte a concluziei ne va ajuta în acest sens.

A doua parte este numită "backtrace", conține o listă de funcții care sunt numite secvențial în cod. Ordinea de retragere, cel mai adesea, invers: la început, ceea ce a fost numit ultima. Mai întâi de toate, aveți nevoie, de la sfârșit, să găsiți prima mențiune a unei funcții dintr-un fișier care arată ca un fișier de test. De obicei, numele său conține cuvântul "test". În exemplul de mai sus, aceasta este linia Object. (test.js: 4: 8). În acest rând, există întotdeauna o indicație a liniei pe care va fi apelul acestei declarații. În acest caz, este linia 4. Tot ce a mai rămas acum este să mergeți la fișierul corespunzător și să vedeți cum a fost apelată funcția.

Avertizări ale compilatorului / interpretului

Erori de sintaxă

Cel mai simplu tip de eroare, spune că ați greșit în sintaxă. A uitat virgula, consola și alte lucruri similare. Ele sunt destul de ușor de găsit și de corecte. Eroarea de sintaxă este însoțită de un text pe care puteți face Google cauzele posibile.

Alte erori

O clasă mare de erori care pot apărea în timpul dezvoltării. Rezultatul conține întotdeauna un mesaj de eroare, care este foarte important de înțeles. Acesta este locul unde există o mulțime de Google. De asemenea, aceste erori conțin ieșirea din "backtrace", prin care puteți găsi locul în care a apărut eroarea și încercați să o analizați.

Multe dintre aceste erori se găsesc cu ușurință cu ajutorul tipăririi de depanare (a se vedea "Lecția de tipărire a depanării" în cursul "Fundamentele programării").

Nimic nu a fost găsit

Articole similare