From 3699eec51054d7aeea12f4c9c0dd79c94f62e3d8 Mon Sep 17 00:00:00 2001
From: Tobias Jordine <jordine@hdm-stuttgart.de>
Date: Sat, 9 Apr 2022 18:41:16 +0200
Subject: [PATCH] =?UTF-8?q?=C3=9Cbung=20Build=20Management=20&=20Testing?=
 =?UTF-8?q?=20hinzugef=C3=BCgt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 website/assignments/Maven-Testing.md | 21 +++++++++++++++++++++
 website/index.html                   |  3 +++
 website/lecturenotes/20220411.md     |  6 ++++++
 3 files changed, 30 insertions(+)
 create mode 100644 website/assignments/Maven-Testing.md
 create mode 100644 website/lecturenotes/20220411.md

diff --git a/website/assignments/Maven-Testing.md b/website/assignments/Maven-Testing.md
new file mode 100644
index 0000000..01a4fba
--- /dev/null
+++ b/website/assignments/Maven-Testing.md
@@ -0,0 +1,21 @@
+# Ãœbungen Software-Entwicklung 3: Build Management & Testing
+
+## Ausgangslage
+Die in der Vorlesung vorgestellten Konzepte des Build Managements und des Testings sollen nun in Ihrem Projekt angewandt werden. Sofern Sie Java einsetzen, verwenden Sie `Maven` für das Build Management und `JUnit` für das Testing. 
+
+## Aufgabe
+* Erstellen Sie eine passende `pom.xml`, sodass sie die Build-Lifecycle Phasen `compile`, `test` und `package` nutzen können.
+* Überlegen Sie sich welche Testarten für Sie relevant sein könnten.
+* Erstellen Sie Unit-Tests nach dem `F.I.R.S.T`-Prinzip. Achten Sie auch darauf, dass Sie den "Happy Path", Randbedingungen sowie Fehlerfälle testen.
+* Erstellen Sie Integrationstests für Ihre Komponenten.
+
+## Tipps
+* `IntelliJ` kann Sie bei der Testerstellung unterstützen. Dafür müssen Sie in einer `.java`-Datei `command` + `n`/`Strg` + `n` ➡️ `Test...` wählen.
+* Nutzen Sie bei Bedarf (z.B. Simulation eines komplexen Objekts) das Mock-Framework [Mockito](https://site.mockito.org)
+* Versuchen Sie eine Funktionalität/Anforderung nach den Test-driven Design Prinzipen zu entwickeln.
+
+
+## Ziele
+* Das Projekt besitzt eine valide Maven-Konfiguration, mit der per `mvn`-Aufruf das Projekt automatisch getestet und gebaut wird.
+* Ihre `Model` und `Controller`-Klassen werden wie oben beschrieben getestet.
+* Zusätzlich werden die Schnittstellen Ihre Komponenten nach diesen Regeln getestet.
\ No newline at end of file
diff --git a/website/index.html b/website/index.html
index 301d2be..e9a0e8b 100644
--- a/website/index.html
+++ b/website/index.html
@@ -14,6 +14,7 @@
         <li><a href="anforderungsanalyse.html" target="_blank">Anforderungsanalyse</a></li>
         <li><a href="softwarearchitektur.html" target="_blank">Softwarearchitektur</a></li>
         <li><a href="clean-code_doku_git.html" target="_blank">git, Dokumentation, Clean Code</a></li>
+        <li><a href="maven-testing.html" target="_blank">Maven & Testing</a></li>
     </ul>
 
     <h3>Vorlesungnotizen</h3>
@@ -21,6 +22,7 @@
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220321.md" target="_blank">Vorlesungsnotizen - 21.03.2022</a></li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220328.md" target="_blank">Vorlesungsnotizen - 28.03.2022</a></li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220404.md" target="_blank">Vorlesungsnotizen - 04.04.2022</a></li>
+        <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/lecturenotes/20220411.md" target="_blank">Vorlesungsnotizen - 11.04.2022</a></li>
     </ul>
 
     <h3>Projekt</h3>
@@ -33,6 +35,7 @@
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Anforderungsanalyse.md" target="_blank">Ãœbung: Anforderungsanalyse</a> </li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Softwarearchitektur.md" target="_blank">Ãœbung: Softwarearchitektur</a> </li>
         <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/git-Doku-CleanCode.md" target="_blank">Ãœbung: git, Dokumentation, Clean Code</a> </li>
+        <li><a href="https://gitlab.mi.hdm-stuttgart.de/jordine/se3sose2022vorlesung/-/blob/main/website/assignments/Maven-Testing.md" target="_blank">Ãœbung: Build Management & Testing</a> </li>
     </ul>
 
     <h3>Organisatorisches</h3>
diff --git a/website/lecturenotes/20220411.md b/website/lecturenotes/20220411.md
new file mode 100644
index 0000000..1a8fcc6
--- /dev/null
+++ b/website/lecturenotes/20220411.md
@@ -0,0 +1,6 @@
+# Vorlesungsnotizen - 11.04.2022
+
+## Maven
+
+
+## Testing
\ No newline at end of file
-- 
GitLab