Differences

This shows you the differences between two versions of the page.

Link to this comparison view

poo-ca-cd:alte-resurse:junit-java [2021/10/01 18:28]
radu_bogdan.pavel [Exerciţii]
poo-ca-cd:alte-resurse:junit-java [2021/11/24 00:52] (current)
radu_bogdan.pavel [Unit testing]
Line 1: Line 1:
-===== JUnit =====+===== JUnit5 ​=====
  
 ==== Obiective ==== ==== Obiective ====
Line 99: Line 99:
  
 <code java Test.java>​ <code java Test.java>​
-import org.junit.Assert; +import org.junit.jupiter.api.*
-import org.junit.Before;+
  
-public class Test {+public class GroupTest ​{
     private Group group;     private Group group;
  
-    @Before+    @BeforeEach
     public void setup() {     public void setup() {
         group = new Group();         group = new Group();
     }     }
  
-    @org.junit.Test+    @Test
     public void testNoStudentInGroup() {     public void testNoStudentInGroup() {
-        ​Assert.assertEquals(false,​ group.areStudentsInGroup());​+        ​Assertions.assertEquals(false,​ group.areStudentsInGroup());​
     }     }
  
-    @org.junit.Test+    @Test
     public void testAddStudent() {     public void testAddStudent() {
         Student st = new Student("​Elena",​ "​11"​);​         Student st = new Student("​Elena",​ "​11"​);​
         group.addStudent(st);​         group.addStudent(st);​
  
-        ​Assert.assertTrue(group.getStudent("​Elena"​).equals(st));​+        ​Assertions.assertTrue(group.getStudent("​Elena"​).equals(st));​
     }     }
-    @After void tearDown() {+    ​ 
 +    ​@AfterEach  
 +    public ​void tearDown() {
         group = null;         group = null;
     }     }
Line 131: Line 132:
 **Observaţii:​** **Observaţii:​**
   * fiecare metodă de test are adnotarea: ''​@Test''​   * fiecare metodă de test are adnotarea: ''​@Test''​
-  * metodele de **setUp** (având adnotarea: ''​@Before''​) şi **tearDown** (având adnotarea: ''​@After''​) se apelează înainte, respectiv după fiecare test. Se întrebuinţează pentru iniţializarea/​eliberarea resurselor ce constituie mediul de testare, evitându-se totodată duplicarea codului şi respectându-se principiul de independenţă a testelor. Pentru exemplul dat ordinea este: +  * metodele de **setUp** (având adnotarea: ''​@BeforeEach''​) şi **tearDown** (având adnotarea: ''​@AfterEach''​) se apelează înainte, respectiv după fiecare test. Se întrebuinţează pentru iniţializarea/​eliberarea resurselor ce constituie mediul de testare, evitându-se totodată duplicarea codului şi respectându-se principiul de independenţă a testelor. Pentru exemplul dat ordinea este: 
-    * ''​@Before ​setUp''​+    * ''​@BeforEach ​setUp''​
     * ''​@Test testNoStudentInGroup''​     * ''​@Test testNoStudentInGroup''​
-    * ''​@After tearDown''​ +    * ''​@AfterEach ​tearDown''​ 
-    * ''​@Before ​setUp''​+    * ''​@BeforeEach ​setUp''​
     * ''​@Test testAddStudent''​     * ''​@Test testAddStudent''​
-    * ''​@After tearDown''​+    * ''​@AfterEach ​tearDown''​
   * În contextul moștenirii dacă ChildTest extends ParentTest ordinea de execuţie este urmatoarea:   * În contextul moștenirii dacă ChildTest extends ParentTest ordinea de execuţie este urmatoarea:
-    * ''​**ParentTest** @Before ​setUp''​ +    * ''​**ParentTest** @BeforeEach ​setUp''​ 
-    * ''​ChildTest @Before ​setUpSub''​+    * ''​ChildTest @BeforeEach ​setUpSub''​
     * ''​ChildTest @Test testChild1''​     * ''​ChildTest @Test testChild1''​
-    * ''​ChildTest @After tearDownSub''​ +    * ''​ChildTest @AfterEach ​tearDownSub''​ 
-    * ''​**ParentTest** @After tearDown''​+    * ''​**ParentTest** @AfterEach ​tearDown''​
   * Pentru compararea rezultatului aşteptat cu rezultatul curent se folosesc apeluri ''​assert'':​   * Pentru compararea rezultatului aşteptat cu rezultatul curent se folosesc apeluri ''​assert'':​
     * ''​assertTrue''​     * ''​assertTrue''​
Line 154: Line 155:
  
 <note important>​ <note important>​
-În cadrul laboratorului vom folosi framework-ul ​JUnit adăugând fişierele [[http://​search.maven.org/​remotecontent?​filepath=junit/​junit/​4.12/​junit-4.12.jar|junit.jar]] şi [[https://​storage.googleapis.com/​google-code-archive-downloads/​v2/​code.google.com/​hamcrest/​hamcrest-all-1.3.jar|hamcrest-all-1.3.jar]] cu acesta ​la proiectele create. +Pentru a folosi framework-ul ​JUnit5, consultațtutorialul din [[poo-ca-cd:​laboratoare:​colectii|laboratorul 8]], aflat la secțiunea **Unit testing**.
- +
-Pentru a importa un //jar// într-un proiect din ''​Eclipse''​ parcurgeţi următorii paşi: //click dreapta proiect// -> //Build path// -> //Configure build path// -> //​Libraries//​ -> //Add jars (Add external jars)//.+
 </​note>​ </​note>​
  
Line 189: Line 188:
  
   * <​html><​a class="​media mediafile mf_pdf"​ href="/​poo/​laboratoare/​exceptii?​do=export_pdf">​PDF laborator</​a></​html>​   * <​html><​a class="​media mediafile mf_pdf"​ href="/​poo/​laboratoare/​exceptii?​do=export_pdf">​PDF laborator</​a></​html>​
-  * [[http://​search.maven.org/​remotecontent?​filepath=junit/​junit/​4.12/​junit-4.12.jar|Junit Download]] 
-  * [[http://​search.maven.org/​remotecontent?​filepath=org/​hamcrest/​hamcrest-core/​1.3/​hamcrest-core-1.3.jar|Hamcrest Core]] 
   * {{:​poo-ca-cd:​alte-resurse:​junit-java:​skel.zip|Schelet}}   * {{:​poo-ca-cd:​alte-resurse:​junit-java:​skel.zip|Schelet}}
-  * {{:​poo-ca-cd:​alte-resurse:​junit-java:sol.zip|Soluție}}+  * {{:​poo-ca-cd:​alte-resurse:​solutie-junit.zip|Solutie}}
  
 ==== Referinţe ==== ==== Referinţe ====
poo-ca-cd/alte-resurse/junit-java.1633102108.txt.gz · Last modified: 2021/10/01 18:28 by radu_bogdan.pavel
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0