# Testen in der Programmiersprache C ## Voraussetzungen ### Benötigte Software #### auf ihrem privaten Rechner - installieren Sie Ruby (https://www.ruby-lang.org/en/downloads/) - Installieren Sie das Build-Tool `ceedling` (http://www.throwtheswitch.org/ceedling) #### privat oder Labor clonen sie folgende Projekte von Github in einem Ordner parallel zu Ihren C-Projekten. > Zielstruktur: > > */Projekte > +- Unity > +- Projekt1 > +- Projekt2 > ... - *Unity* (Testing-Framework) https://github.com/ThrowTheSwitch/Unity ### Übungsprojekt - dieses [Projekt](https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/Uebung-Automatisiertes-Testen-in-C) in ein Verzeichnis parallel zu *Unity* clonen - im Projekt-Verzeichnis das dort befindliche Skipt `create_folders.sh` ausführen. (`bash cr*`) ## Übung ### Fall 1 - Offnen Sie die Datei `src/test/c/test_berechnung.c` in einem Editor - Verwenden Sie das `TEST_ASSERT_EQUAL_INT` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `gcd()`: 1. 15, 20 -> 5 1. 183, 99 -> 3 1. 91, 1008 -> 7 > ### Fall 2 - die datei `src/test/c/test_berechnung.c` kopieren - Die Testprozeduren aus eier der Testdateien löschen neue Testprozeduren für die andere Prozedur aus `src/main/c/berechnung.h` mit den nachfolgenden testdaten anlegen. - Verwenden Sie das `TEST_ASSERT_EQUAL_STRING` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `convert()`: 1. 2 -> "2" 1. 3 -> "Fizz" 1. 5 -> "Buzz" 1. 11 -> "11" 1. 15 -> "FizzBuzz" 1. 12 -> "12" (schlägt fehl) > - Ergänzen Sie die *asserts* um eine Bechreibung mit dem Macro `TEST_ASSERT_EQUAL_INT_MESSAGE` bzw. `TEST_ASSERT_EQUAL_STRING_MESSAGE`