xtd 0.2.0
Loading...
Searching...
No Matches
xtd::tunit::class_cleanup_attribute Class Reference

Definition

This attribute is use to add cleanup class method to class test attribute.

Namespace
xtd::tunit
Library
xtd.tunit
Remarks
The class cleanup method is the method that is called just after all the tests are finished. It is called only once.
Examples
The following example shows how to use xtd::tunit::class_initialize_attribute class.
#include <xtd/xtd.tunit>
using namespace xtd::tunit;
namespace unit_tests {
// Used test_class_attribute<> to add unit test suit.
class test;
test_class_attribute<test> test_class_attr {"unit_tests::test"};
// The test class must be inherit from test_class class.
class test : public test_class {
// This is the method that is called 1 time before test class run.
class_initialize_attribute class_initialize_attr {"class_initialize", *this, &test::class_initialize};
static void class_initialize() {
}
// This is the method that is called 1 time after test class run.
class_cleanup_attribute class_cleanup_attr {"class_cleanup", *this, &test::class_cleanup};
static void class_cleanup() {
}
// This is the method that is called before any tests in a fixture are run.
test_initialize_attribute test_initialize_attr {"test_initialize", *this, &test::test_initialize};
static void test_initialize() {
}
// This is the method that is called after any tests in a fixture are run.
test_cleanup_attribute test_cleanup_attr {"test_cleanup", *this, &test::test_cleanup};
static void test_cleanup() {
}
test_method_attribute test_case1_attr {"test_case1", *this, &test::test_case1};
void test_case1() {
}
test_method_attribute test_case2_attr {"test_case2", *this, &test::test_case2};
void test_case2() {
}
test_method_attribute test_case3_attr {"test_case3", *this, &test::test_case3, test_state::ignored};
void test_case3() {
}
};
}
auto main() -> int {
return console_unit_test().run();
}
// This code can produce the following output :
//
// Start 3 tests from 1 test case
// Run tests:
// SUCCEED unit_tests::test.test_case1 (0 ms total)
// SUCCEED unit_tests::test.test_case2 (0 ms total)
// IGNORED test.test_case3 (0 ms total)
// Test ignored
//
// Test results:
// SUCCEED 2 tests.
// IGNORED 1 test.
// End 3 tests from 1 test case ran. (0 ms total)
This attribute is use to add cleanup class method to class test attribute.
Definition class_cleanup_attribute.hpp:21
This attribute is use to add initialize class method to class test attribute.
Definition class_initialize_attribute.hpp:21
The console_unit_test class is console unit test interface.
Definition console_unit_test.hpp:23
Represents a test class attribute.
Definition test_class_attribute.hpp:24
Represents a test class.
Definition test_class.hpp:39
Represents a test cleanup attribute.
Definition test_cleanup_attribute.hpp:21
Represents a test initialize attribute.
Definition test_initialize_attribute.hpp:17
Represents a test method attribute.
Definition test_method_attribute.hpp:23
Represents a test method.
Definition test.hpp:29
int32 run() noexcept
Runs all tests in this unit_test object and prints the result.
The tunit namespace contains a unit test library.
Definition abort_error.hpp:10
Examples
test_class_without_helpers.cpp.

Public Constructors

template<typename test_class_t >
 class_cleanup_attribute (const std::string &name, test_class_t &test_class, void(*method)(), const xtd::diagnostics::stack_frame &stack_frame=xtd::diagnostics::stack_frame::current()) noexcept
 Creates new instance of class_cleanup_attribute attribute.
 

Constructor & Destructor Documentation

◆ class_cleanup_attribute()

template<typename test_class_t >
xtd::tunit::class_cleanup_attribute::class_cleanup_attribute ( const std::string &  name,
test_class_t &  test_class,
void(*)()  method,
const xtd::diagnostics::stack_frame stack_frame = xtd::diagnostics::stack_frame::current() 
)
inlinenoexcept

Creates new instance of class_cleanup_attribute attribute.

Parameters
nameName of attribute
test_classxtd::tunit::class_test containing clean_up method.
methodCleanup class method.
stack_frameContains information about current file and current line.

The documentation for this class was generated from the following file: