This shows you the differences between two versions of the page.
|
poo-ca-cd:laboratoare:programare-avansata-java [2026/01/12 01:03] florian_luis.micu [Logging folosind Log4j] |
poo-ca-cd:laboratoare:programare-avansata-java [2026/01/12 12:12] (current) florian_luis.micu [Unit testing vs Assertions] |
||
|---|---|---|---|
| Line 7: | Line 7: | ||
| =====Obiective===== | =====Obiective===== | ||
| - | =====Serializare și Deserializare===== | + | Scopul acestui laborator este introducerea studenților în concepte mai avansate care permit crearea framework-urilor și a aplicațiilor enterprise. |
| + | |||
| + | Aspectele urmărite sunt: | ||
| + | * înțelegerea conceptelor de testare. | ||
| + | * utilizarea corectă a mecanismului de reflection. | ||
| + | * exersarea serializărilor și deserealizărilor. | ||
| + | * implementarea și utilizarea corectă a adnotărilor. | ||
| + | * exersarea folosirii aserților. | ||
| + | * familiarizarea cu dependențe populare cum ar fi JUnit, Mockito, Jackson. | ||
| + | |||
| + | Aspectele **bonus** urmărite sunt: | ||
| + | * înțelegerea mecanismelor de logging. | ||
| + | * aprofundarea metodologiilor de dezvoltare software. | ||
| + | * Diferența dintre getClass() și instanceof. | ||
| + | * Organizarea memoriei pentru moștenire în Java. | ||
| + | |||
| + | <note warning> | ||
| + | * În acest laborator există mai multe secțiuni marcate **[Optional]**. Aceste secțiuni cuprind informații **bonus** care vă pot fi prezentate în **timpul laboratorului** sau pe care le puteți aprofunda **în afara** acestuia, ele nefiind necesare pentru laboratoarele viitoare sau pentru teme. | ||
| + | * De asemenea, veți întâlni câteva secțiuni marcate **[Nice to know]**. Vă recomandăm ca acestea să aibă **prioritate** în parcurgerea secțiunilor de tip **[Optional]**, deoarece vă pot oferi informații bonus care să fie și foarte probabil utile pentru **teme** sau **laboratoare viitoare**. | ||
| + | </note> | ||
| + | |||
| + | =====🔄 Serializare și Deserializare===== | ||
| ====Ce este serializarea?==== | ====Ce este serializarea?==== | ||
| Line 174: | Line 195: | ||
| ===De ce este Jackson preferat în aplicațiile moderne?=== | ===De ce este Jackson preferat în aplicațiile moderne?=== | ||
| - | De ce este Jackson preferat în aplicațiile moderne? | ||
| * JSON este lizibil și ușor de debugat, | * JSON este lizibil și ușor de debugat, | ||
| * este interoperabil cu alte limbaje, | * este interoperabil cu alte limbaje, | ||
| Line 339: | Line 359: | ||
| </code> | </code> | ||
| - | =====Adnotări în Java===== | + | =====🏷️ Adnotări în Java===== |
| ====Ce sunt adnotările?==== | ====Ce sunt adnotările?==== | ||
| Line 594: | Line 614: | ||
| - | =====Reflection în Java===== | + | =====🪞 Reflection în Java===== |
| ====Ce este Reflection?==== | ====Ce este Reflection?==== | ||
| Line 783: | Line 803: | ||
| - | =====Assertions===== | + | =====🔍 Assertions===== |
| ====Ce sunt assertions?==== | ====Ce sunt assertions?==== | ||
| Line 844: | Line 864: | ||
| - | =====Unit Testing===== | + | =====🔬 Unit Testing===== |
| ====Ce este Unit Testing?==== | ====Ce este Unit Testing?==== | ||
| Line 981: | Line 1001: | ||
| <note warning> | <note warning> | ||
| - | Interacțiunile cu: | + | Interacțiunile cu **componente externe** precum baze de date, rețea, sistemul de fișiere sau servicii externe nu mai țin de testarea izolată a unei unități de cod, ci fac parte din i**ntegration testing** sau, la un nivel mai larg, din **system testing**. |
| - | * baze de date | + | |
| - | * rețea | + | |
| - | * filesystem | + | |
| - | * servicii externe | + | |
| - | + | ||
| - | Acestea aparțin: | + | |
| - | * integration testing | + | |
| - | * system testing | + | |
| </note> | </note> | ||
| - | =====Integration Testing & Mocking===== | + | =====🧪 Integration Testing & Mocking===== |
| ====Ce este Integration Testing?==== | ====Ce este Integration Testing?==== | ||
| Line 1133: | Line 1145: | ||
| </note> | </note> | ||
| - | =====[Nice to know] Logging în Java ===== | + | =====[Nice to know] 🪵 Logging în Java ===== |
| ==== Ce este logging-ul? ==== | ==== Ce este logging-ul? ==== | ||
| Line 1213: | Line 1225: | ||
| </note> | </note> | ||
| - | =====[Optional] Software Development Methodologies===== | + | =====[Optional] 🗺️ Software Development Methodologies===== |
| În urma paradigmei OOP, au fost concepute mai multe metodologii care pot augmenta performanța sau anumite abilități ale unui proiect conform necesităților. | În urma paradigmei OOP, au fost concepute mai multe metodologii care pot augmenta performanța sau anumite abilități ale unui proiect conform necesităților. | ||
| Line 1342: | Line 1354: | ||
| <note tip>Denumirea și scopul claselor de mai sus respectă un standard folosit de framework-ul Spring.</note> | <note tip>Denumirea și scopul claselor de mai sus respectă un standard folosit de framework-ul Spring.</note> | ||
| + | |||
| + | ===== Resurse și link-uri utile ===== | ||
| + | * [[https://site.mockito.org/ | Mockito]] | ||
| + | * [[https://www.atlassian.com/continuous-delivery/software-testing/types-of-software-testing | Different types of software testing]] | ||
| + | * [[https://www.baeldung.com/java-logging-intro | Introduction to Java logging - Baeldung]] | ||
| + | * [[https://softwareengineering.stackexchange.com/questions/123956/why-should-i-use-reflection | Why should I use reflection and when? - StackOverflow]] | ||