Narzędzia użytkownika

Narzędzia witryny


boosttest

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
boosttest [2008/04/16 03:11]
twroniak
boosttest [2008/04/16 23:00] (aktualna)
twroniak
Linia 1: Linia 1:
 +The acceptance test makes the customer satisfied that the\\
 +software provides the business value that makes them willing\\
 +to pay for it. The unit test makes the programmer satisfied\\
 +that the software does what the programmer thinks it does.\\
 +
 ===== Opis biblioteki ===== ===== Opis biblioteki =====
  
Linia 110: Linia 115:
  
 Program execution monitor posiada możliwość konfiguracji przez następujące zmienne środowiskowe:​ Program execution monitor posiada możliwość konfiguracji przez następujące zmienne środowiskowe:​
-  * BOOST_TEST_CATCH_SYSTEM_ERRORS +  * BOOST_TEST_CATCH_SYSTEM_ERRORS ​- pozwala wyłączyć przechwytywanie błędów systemowych,​ domyślnie ustawiona na "​yes"​ 
-  * BOOST_PRG_MON_CONFIRM+  * BOOST_PRG_MON_CONFIRM ​- domyślnie ustawiona na "​yes"​ powoduje wyświetlanie wiadomość potwierdzającą w przypadku pomyślnego zakończenia testów.
  
 ==== Execution monitor ==== ==== Execution monitor ====
 +
 +Execution monitor, czyli monitor wykonywania programu, jest jednym z niskopoziomowych elementów biblioteki Boost.Test, oraz stanowi bazę do implementacji pozostałych narzędzi przez nią oferowanych. Używany jako osobne narzędzie zapewnia monitorowane środowisko wykonywania programu oraz ujednoliconą obsługę błędów. Poniżej zaprezentowano jedną z ciekawszych jego cech, czyli rejestrowanie funkcji obsługujących własne wyjątki programisty.
  
 <code cpp> <code cpp>
Linia 193: Linia 200:
  
 ====Unit test framework ==== ====Unit test framework ====
 +
 +Unit test framework jest narzędziem oferującym programiście prosty i przystępny sposób na testowanie jego programów. Jest moim zdaniem najprzydatniejszym elementem biblioteki. Umożliwia tworzenie przypadków testowych testujących zarówno niezwiązane funkcje, jak i metody klas. Przypadki testowe (test cases) można grupować w zestawy testowe (test suites) tak, aby np. testy metod jednej klasy były zgrupowane w jednym zestawie.\\
 +\\
 +
 +Funkcja main nie jest dostarczana przez programistę,​ robi to za niego unit test framework. Programista musi zdefiniować funkcje o nagłówku boost::​unit_test::​test_suite* init_unit_test_suite ( int argc, char* argv[] )
 + (argc i argv są parametrami wywołania, nie można ich pominąć przy deklaracji, można je zignorować pisząc init_unit_test_suite ( int, char* [] ) ). Zadaniem tej funkcji jest inicjalizacja drzewa testowego, wartością zwracaną powinien być master test suite, czyli zbiór wszystkich przypadków testowych.
  
 <code cpp> <code cpp>
-/​******************************************************************************* 
- ​* Tomasz Wroniak G1ISI 
- ​* Boost.Test 
- * 
- ​* Biblioteka Boost.Test oferuje programiscie prosty i przystepny sposob na  
- ​* testowanie jego programow. Umozliwia tworzenie przypadkow testowych (test 
- ​* cases) i grupowanie ich w zetawy testowe (test suites) 
- * 
- ​*http://​www.boost.org/​libs/​test for the library home page. 
- ​******************************************************************************/​ 
  
 //naglowek zawierajacy Unit Test Framework //naglowek zawierajacy Unit Test Framework
Linia 212: Linia 215:
 #include <​boost/​shared_ptr.hpp>​ #include <​boost/​shared_ptr.hpp>​
 using namespace boost::​unit_test;​ using namespace boost::​unit_test;​
- 
-/​******************************************************************************* 
-// funkcja main nie jest dostarczana przez programiste,​ robi to za niego unit 
-// test framework. Programista musi zdefiniowac funkcje o naglowku 
-// boost::​unit_test::​test_suite* init_unit_test_suite ( int argc, char* argv[] ) 
-// (argc i argv sa parametrami wywolania, nie mozna ich pominac przy deklaracj, 
-// mozna je zignorowac piszac init_unit_test_suite ( int, char* [] ) ). 
-// Zadaniem tej funkcji jest inicjalizacja drzewa testowego, wartoscia zwracana 
-// powinien byc master test suite, czyli zbior wszystkich przypadkow tesotwych. 
-// w przypadku zwrocenia wartosci NULL testy nie beda wykonane, a program 
-// zakonczy sie zwroceniem boost::​exit_test_failure 
-*******************************************************************************/​ 
  
 /​****************************************************************************** /​******************************************************************************
Linia 332: Linia 323:
 } }
 </​code>​ </​code>​
 +
 +Jak łatwo zauważyć biblioteka ta w znacznym stopniu polega na prostych makrach opakowujących szablony. Skutkuje to niestety znacznym wydłużeniem kompilacji, która na słabszych komputerach (takich jak np. komputer autora:) ) może trwać na prawdę długo. Elegancję tak frywolnego użycia tak dużej ilości makr pozostawiam do oceny czytelnikowi.
 +
boosttest.1208308280.txt.gz · ostatnio zmienione: 2008/04/16 03:11 przez twroniak