Giriş
Şu satırı dahil ederiz.
Seçenekler test uygulamalarının çıktısını kontrol etmek için kullanılır. Uygulama çalışırken şu çıktıyı alırız.
Örnek
Şöyle yaparız.
Burada bir örnek daha var.
Macrolar
BOOST_TEST_MAIN Macrosu
Sanırım main metodunun tanımlanmasını sağlar. Emin değilim. Şöyle yaparız.
.cpp dosyasını başına ekleriz. Şöyle yaparız.
Normalde testlerde main metodu olmaz. Bu macro main metodu yazabilmemizi sağlar. Şöyle yaparız.
Test metodudur.
Örnek
Şöyle yaparız.
Testi komut satırından açmak için şöyle yaparız
BOOST_AUTO_TEST_SUITE Macrosu
Şöyle yaparız.
Parametrenin true olduğunu kontrol eder.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Parametre true ise mesaj basar. Şöyle yaparız.
Örnek
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız. Metod çağrısının std::logic_error fırlatması beklenir.
BOOST_FIXTURE_TEST_CASE Macrosu
Şöyle yaparız
Şöyle yaparız.
Şu satırı dahil ederiz.
#include <boost/test/unit_test.hpp>
Bazen şu satı dahil ediliyor.#include <boost/test/included/unit_test.hpp>
Kolay kullanım için şu isim alanı dahil edilir.using namespace boost::unit_test;
Linklemek için şöyle yaparız. BOOST_TEST_DYN_LINK ile dll'i kullanmasını sağlarız.#define BOOST_TEST_DYN_LINK
#define BOOST_TEST_MODULE MyTest
#include <boost/test/unit_test.hpp>
SeçeneklerSeçenekler test uygulamalarının çıktısını kontrol etmek için kullanılır. Uygulama çalışırken şu çıktıyı alırız.
Test command: ...
Environment variables:
BOOST_TEST_AUTO_START_DBG=yes
BOOST_TEST_BUILD_INFO=yes
BOOST_TEST_CATCH_SYSTEM_ERRORS=yes
BOOST_TEST_COLOR_OUTPUT=yes
BOOST_TEST_DETECT_FP_EXCEPTIONS=yes
BOOST_TEST_LOG_FORMAT=HRF
BOOST_TEST_LOG_LEVEL=test_suite
BOOST_TEST_LOG_SINK=stdout
BOOST_TEST_RANDOM=1
BOOST_TEST_REPORT_FORMAT=XML
BOOST_TEST_REPORT_LEVEL=detailed
BOOST_TEST_REPORT_SINK=...
BOOST_TEST_RESULT_CODE=yes
...
list_content seçeneği
Şöyle yaparız
Şöyle yaparız
./App --list_content
test_suite_1*
bare_test*
enabled_test*
disabled_test
test_suite_2*
bare_test*
enabled_test*
disabled_test
logger seçeneği
Şöyle yaparız.
./App --log_level=test_suite --log_format=JUNIT --log_sink=output.xml
run_test seçeneği
Suite içindeki testi çalıştırmak için şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
^ operator metodu
Açıklaması şöyle
--run_test=mysuite/add_remove
master test suite Sınıfı
ConstructorŞöyle yaparız.
auto &ts = framework::master_test_suite();
add metoduŞöyle yaparız.
ts.add (BOOST_TEST_CASE(...));
dataset Sınıfı^ operator metodu
Açıklaması şöyle
A zip, denoted ^ , is an operation on two datasets dsa and dsb of same arity and same size, resulting in a dataset where the k-th sample of dsa is paired with the corresponding k-th sample of dsb. The resulting dataset samples order follows the left to right order against the symbol ^.
İki set'i birleştirir. Çıktı olarak şunu alırız.
dsa = (a_1, a_2, ... a_i)
dsb = (b_1, b_2, ... b_i)
dsa ^ dsb = ( (a_1, b_1), (a_2, b_2) ... (a_i, b_i) )
Örnek
Şöyle yaparız.
fibonacci_dataset() ^ bdata::make( { 1, 2, 3, 5, 8, 13, 21, 35, 56 } )
ÖrnekBurada bir örnek daha var.
Macrolar
BOOST_TEST_MAIN Macrosu
Sanırım main metodunun tanımlanmasını sağlar. Emin değilim. Şöyle yaparız.
#define BOOST_TEST_MODULE hello
#define BOOST_TEST_MAIN
#define BOOST_TEST_DYN_LINK
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE()
BOOST_AUTO_TEST_CASE(t1)
{
BOOST_CHECK_EQUAL(...);
}
BOOST-AUTO_TEST_SUITE_END()
BOOST_TEST_MODULE Macrosu.cpp dosyasını başına ekleriz. Şöyle yaparız.
#define BOOST_TEST_MODULE MyTest
BOOST_TEST_NO_MAIN MacrosuNormalde testlerde main metodu olmaz. Bu macro main metodu yazabilmemizi sağlar. Şöyle yaparız.
#define BOOST_TEST_MODULE custom_main
#define BOOST_TEST_NO_MAIN
#define BOOST_TEST_ALTERNATIVE_INIT_API
#include <boost/test/included/unit_test.hpp>
#include <iostream>
#include <unistd.h>
#include <signal.h>
void signalHandler(int sig)
{
std::cerr << "Inside signal handler" << std::endl;
}
namespace utf = boost::unit_test;
BOOST_AUTO_TEST_CASE(test1)
{
BOOST_TEST(false);
}
int main(int argc, char* argv[], char* envp[])
{
signal(SIGINT, signalHandler);
signal(SIGTERM, signalHandler);
return utf::unit_test_main(init_unit_test, argc, argv);
}
BOOST_AUTO_TEST_CASE MacrosuTest metodudur.
Örnek
Şöyle yaparız.
BOOST_AUTO_TEST_CASE(my_test1 )
{
...
}
ÖrnekTesti komut satırından açmak için şöyle yaparız
BOOST_AUTO_TEST_CASE(enabled_test,* utf::enabled())
{
...
}
Testi komut satırından kapamak için şöyle yaparızBOOST_AUTO_TEST_CASE(disabled_test,* utf::disabled())
{
...
}
BOOST_AUTO_TEST_SUITE Macrosu
Şöyle yaparız.
BOOST_AUTO_TEST_SUITE (MySuite)
BOOST_AUTO_TEST_CASE (mytest)
{
...
}
BOOST_AUTO_TEST_SUITE_END()
BOOST_CHECK MacrosuParametrenin true olduğunu kontrol eder.
Örnek
Şöyle yaparız.
BOOST_CHECK (foo.is_valid());
ÖrnekŞöyle yaparız.
vector_set<int> vs;
BOOST_CHECK(vs.empty());
BOOST_CHECK_MESSAGE MacrosuParametre true ise mesaj basar. Şöyle yaparız.
float foo()
{
return 1;
}
BOOST_AUTO_TEST_CASE( numbers )
{
BOOST_CHECK_MESSAGE( foo() == 1 , "The Value is correct ");
}
BOOST_CHECK_EQUAL MacrosuÖrnek
Şöyle yaparız.
BOOST_CHECK_EQUAL (foo1 == foo2);
ÖrnekŞöyle yaparız.
vector<int> v = { 1,3,4,6,7,5,3 };
BOOST_CHECK_EQUAL(v.empty(), false);
BOOST_CHECK_THROW MacrosuŞöyle yaparız. Metod çağrısının std::logic_error fırlatması beklenir.
BOOST_CHECK_THROW(myMethod, std::logic_error);
Şöyle yaparız
BOOST_AUTO_TEST_SUITE(mysuite)
struct Fixture
{
Fixture()
{
BOOST_TEST_MESSAGE("Setup");
}
~Fixture()
{
BOOST_TEST_MESSAGE("Teardown");
}
};
BOOST_FIXTURE_TEST_CASE(add_remove, Fixture)
{
}
BOOST_AUTO_TEST_SUITE_END()
Çalıştırmak için şöyle yaparız.--run_test=mysuite/add_remove
BOOST_TEST MacrosuŞöyle yaparız.
BOOST_TEST(true);
Hiç yorum yok:
Yorum Gönder