Mam funkcję C uint8_t command_read(const FILE* const in)
, która czyta się z in
. Chciałbym napisać test jednostkowy dla funkcji. Czy jest możliwe utworzenie w pamięci testu FILE*
, ponieważ chciałbym uniknąć interakcji z systemem plików? Jeśli nie, jakie są alternatywy?Jak testować jednostkę funkcji C za pomocą argumentu FILE *
5
A
Odpowiedz
9
Czy można utworzyć PLIK * w pamięci do testu?
Pewnie. Do pisania:
char *buf;
size_t sz;
FILE *f = open_memstream(&buf, &sz);
// do stuff with `f`
fclose(f);
// here you can access the contents of `f` using `buf` and `sz`
free(buf); // when done
To jest POSIX. Docs.
do odczytu:
char buf[] = "Hello world! This is not a file, it just pretends to be one.";
FILE *f = fmemopen(buf, sizeof(buf), "r");
// read from `f`, then
fclose(f);
Sidenote:
Chciałbym uniknąć test mający na interakcję z systemem plików.
Dlaczego?
Powiązane problemy
- 1. Jak testować jednostkę funkcji, która używa Popen?
- 2. Jak testować jednostkę dla Xtext
- 3. Jak testować jednostkę JSON parsowanie
- 4. Jak testować jednostkę Excel VBA kod
- 5. Konfiguracja funkcji logback za pomocą argumentu jvm
- 6. Jak testować wiele wyjątków za pomocą PHPUnit?
- 7. Szyny: Jak testować poddomeny za pomocą RSpec
- 8. Jak testować urządzenie HtmlHelper za pomocą Moq?
- 9. Jak testować pamięć asynchroniczną za pomocą?
- 10. Jak testować fragment za pomocą Espresso
- 11. Jak testować jednostkę "prywatna" funkcja użyteczności w nodejs
- 12. wysyłanie argumentu parametru do funkcji za pomocą selektora UITapGestureRecognizer
- 13. Jak znaleźć pochodną funkcji za pomocą c
- 14. Częściowe dopasowanie argumentu funkcji
- 15. Jak zwrócić jednostkę z funkcji scala?
- 16. Jak testować http wzywa w podróży za pomocą httptest
- 17. kodu C++ w funkcji jako argumentu
- 18. Jak przekazać do argumentu funkcji funkcję wskaźnika za pomocą funkcji owijki?
- 19. Jak testować HTTPS za pomocą skryptu/serwera Rails?
- 20. Typ argumentu funkcji anonimowej
- 21. Przeciążanie funkcji członka C++ za pomocą & ampersand)
- 22. Zawijanie funkcji C++ za pomocą łącznika GNU
- 23. IE9 input file wyzwalanie za pomocą JavaScript
- 24. Jak wykryć wymiary pliku za pomocą File API i Dropzone.js
- 25. C++: Wywołanie funkcji członka za pomocą wskaźnika
- 26. C# Czas funkcji za pomocą atrybutu
- 27. test jednostki kątowej2: jak testować zdarzenia za pomocą tiggerEventHandler
- 28. Jak testować metodę meteorytów za pomocą praktycznego meteorytu: mocha
- 29. Jak testować lokalizowane ceny za pomocą rozliczeń w aplikacji v3
- 30. C# Jak prawidłowo testować klasę, która podąża za wzorcem dekoratora?
"* Dlaczego? *" - taka jest natura testów jednostkowych. Chcesz przetestować ** funkcjonalność swojego modułu ** bez udziału czynników zewnętrznych. Dlatego interfejsy zewnętrzne są zwykle emulowane przez kody pośredniczące lub coś w tym rodzaju. – SomeWittyUsername
@icepack Euh, czy to nie jest takie nierealne? Mam na myśli, jeśli wystąpi błąd podczas otwierania pliku, ale test jednostkowy przechodzi ... –
UT powinien wstrzyknąć wszystkie możliwe rodzaje danych wejściowych do sprawdzanego modułu. Nieudane otwarcie pliku można łatwo emulować, udostępniając funkcję NULL dla tej funkcji. Oczekiwane zachowanie powinno zostać zwrócone z błędem lub potwierdzeniem. – SomeWittyUsername