Vorlage für Automatisiertes Testen mit der Programmiersprache C
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.7 KiB

1 year ago
1 year ago
1 year ago
  1. # Testen in der Programmiersprache C
  2. ## Voraussetzungen
  3. ### Benötigte Software
  4. #### auf ihrem privaten Rechner
  5. - installieren Sie Ruby (https://www.ruby-lang.org/en/downloads/)
  6. - Installieren Sie das Build-Tool `ceedling` (http://www.throwtheswitch.org/ceedling)
  7. #### privat oder Labor
  8. clonen sie folgende Projekte von Github in einem Ordner parallel zu Ihren C-Projekten.
  9. > Zielstruktur:
  10. >
  11. > */Projekte
  12. > +- Unity
  13. > +- Projekt1
  14. > +- Projekt2
  15. > ...
  16. - *Unity* (Testing-Framework) https://github.com/ThrowTheSwitch/Unity
  17. ### Übungsprojekt
  18. - dieses [Projekt](https://gogs.informatik.hs-fulda.de/Programmiermethoden_und_werkzeuge-public/Uebung-Automatisiertes-Testen-in-C) in ein Verzeichnis parallel zu *Unity* clonen
  19. - im Projekt-Verzeichnis das dort befindliche Skipt `create_folders.sh` ausführen. (`bash cr*`)
  20. ## Übung
  21. ### Fall 1
  22. - Offnen Sie die Datei `src/test/c/test_berechnung.c` in einem Editor
  23. - Verwenden Sie das `TEST_ASSERT_EQUAL_INT` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `gcd()`:
  24. 1. 15, 20 -> 5
  25. 1. 183, 99 -> 3
  26. 1. 91, 1008 -> 7
  27. >
  28. ### Fall 2
  29. - die datei `src/test/c/test_berechnung.c` kopieren
  30. - 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.
  31. - Verwenden Sie das `TEST_ASSERT_EQUAL_STRING` Macro aus dem *Unity* Framework für folgende Testfälle für die Methode `convert()`:
  32. 1. 2 -> "2"
  33. 1. 3 -> "Fizz"
  34. 1. 5 -> "Buzz"
  35. 1. 11 -> "11"
  36. 1. 15 -> "FizzBuzz"
  37. 1. 12 -> "12" (schlägt fehl)
  38. >
  39. - Ergänzen Sie die *asserts* um eine Bechreibung mit dem Macro `TEST_ASSERT_EQUAL_INT_MESSAGE` bzw. `TEST_ASSERT_EQUAL_STRING_MESSAGE`