Browse Source

Beispiel-Code

Uebung-Testesn-C
Thomas Papendieck 2 years ago
parent
commit
b5b3104450
  1. 20
      README.md
  2. 4
      project.yml
  3. 25
      src/main/c/berechnung.c
  4. 9
      src/main/c/berechnung.h
  5. 27
      src/test/c/test_berechnung.c

20
README.md

@ -27,5 +27,21 @@ clonen sie folgende Projekte von Github in einem Ordner parallel zu Ihren C-Proj
### Übungsprojekt ### Übungsprojekt
- dieses Projekt in ein Verzeichnis parallel zu *Unity* und *CMock* clonen - dieses Projekt in ein Verzeichnis parallel zu *Unity* und *CMock* clonen
- in einer *git-bash* diesem Verzeichnis dieses Kommando ausführen:
`sh create_folders.sh`
- Offnen Sie die Datei `src/test/c/test_berechnung.c` in einem Editor
- 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)
- 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
- Ergänzen Sie die *asserts* um eine Bechreibung mit dem Macro `TEST_ASSERT_EQUAL_INT_MESSAGE` bzw. `TEST_ASSERT_EQUAL_STRING_MESSAGE`

4
project.yml

@ -9,7 +9,7 @@
:use_exceptions: FALSE :use_exceptions: FALSE
:use_test_preprocessor: TRUE :use_test_preprocessor: TRUE
:use_auxiliary_dependencies: TRUE :use_auxiliary_dependencies: TRUE
:build_root: build
:build_root: target
# :release_build: TRUE # :release_build: TRUE
:test_file_prefix: test_ :test_file_prefix: test_
:which_ceedling: gem :which_ceedling: gem
@ -37,7 +37,7 @@
- src/main/c/** - src/main/c/**
:support: :support:
- src/test/c/support - src/test/c/support
:libraries: [/usr/include/]
:libraries: []
:defines: :defines:
# in order to add common defines: # in order to add common defines:

25
src/main/c/berechnung.c

@ -0,0 +1,25 @@
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "berechnung.h"
char* convert(int input){
char* result = malloc(5*sizeof(char*));
sprintf(result,"%d\n", input);
if (input % 15 == 0)
strcpy(result,"fizzbuzz\n");
else if (input % 5 == 0)
strcpy(result,"buzz\n");
else if (input % 3 == 0)
strcpy(result,"fizz\n");
return result;
}
int gcd(int a, int b) {
if (b == 0) return a;
return gcd(b, a % b);
}

9
src/main/c/berechnung.h

@ -0,0 +1,9 @@
#ifndef BERECHNUNG_H
#define BERECHNUNG_H
char* convert(int input);
int gcd(int a, int b);
#endif // BERECHNUNG_H

27
src/test/c/test_berechnung.c

@ -0,0 +1,27 @@
#ifdef TEST
#include "unity.h"
#include "berechnung.h"
void setUp(void)
{
}
void tearDown(void)
{
}
void test_berechnung_2_convertsToDigit(void)
{
/* arrange */
char* result;
char expected[] = "2\n";
/* act */
result = convert(2);
/* assert */
}
#endif // TEST
Loading…
Cancel
Save