xtd 0.2.0
test.hpp
Go to the documentation of this file.
1
4#pragma once
5#include "../tunit_export.hpp"
6#include "assert.hpp"
7#include "assert_error.hpp"
8#include <xtd/diagnostics/stack_frame>
9#include <xtd/date_time>
10
12namespace xtd {
14 namespace tunit {
16 class test_class;
17 class unit_test;
18 class valid;
20
29 class tunit_export_ test final : public xtd::object {
32 enum class test_status {
36 ignored,
38 succeed,
40 aborted,
42 failed
43 };
44
45 public:
47
50 test() = default;
61 test(const xtd::string& name, const std::function<void()>& method, bool ignore, const xtd::diagnostics::stack_frame& stack_frame = xtd::diagnostics::stack_frame::current()) noexcept;
63
65
69 bool aborted() const noexcept;
70
73 const xtd::string& actual() const noexcept;
74
77 xtd::time_span elapsed_time() const noexcept;
78
81 const xtd::string& expect() const noexcept;
82
85 bool failed() const noexcept;
86
89 bool ignored() const noexcept;
90
93 bool not_started() const noexcept;
94
97 bool succeed() const noexcept;
98
101 const xtd::diagnostics::stack_frame stack_frame() const noexcept;
102
105 const xtd::date_time& start_time() const noexcept;
106
109 std::function<void()> method() const noexcept;
110
113 const xtd::string& message() const noexcept;
114
117 const xtd::string& name() const noexcept;
118
121 const xtd::string& user_message() const noexcept;
123
125 static intptr __internal_tunit_unit_tests_mode__;
127
128 private:
129 friend class xtd::tunit::assert;
130 friend class xtd::tunit::base_assert;
131 friend class xtd::tunit::test_class;
132 friend class xtd::tunit::valid;
133 static test& current_test();
134 static const test_class& current_test_class();
135 static const unit_test& current_unit_test();
136 static bool has_current_test();
137 static bool has_current_test_class();
138 static bool has_current_unit_test();
139
140 void run(const xtd::tunit::unit_test& unit_test, const xtd::tunit::test_class& test_class);
141
142 xtd::date_time end_time_point_;
143 static test* current_test_;
144 static const test_class* current_test_class_;
145 static const unit_test* current_unit_test_;
146 xtd::string actual_;
147 xtd::string expect_;
148 xtd::diagnostics::stack_frame stack_frame_ = null;
149 xtd::string message_;
150 std::function<void()> method_;
151 xtd::string name_;
152 xtd::date_time start_time_;
153 test_status status_ = test_status::not_started;
154 xtd::string user_message_;
155 };
156 }
157}
Contains xtd::tunit::assert_error exception.
Represents an instant in time, typically expressed as a date and time of day.
Definition date_time.hpp:85
Provides information about a xtd::diagnostics::stack_frame, which represents a function call on the c...
Definition stack_frame.hpp:48
static stack_frame current(const xtd::diagnostics::source_location &value=xtd::diagnostics::source_location::current()) noexcept
Crates a new xtd::diagnostics::stack_frame object corresponding to the location of the call site.
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.hpp:44
Represents a time interval.
Definition time_span.hpp:29
Represents a test class.
Definition test_class.hpp:39
bool not_started() const noexcept
Get a value that represent a not started test.
bool aborted() const noexcept
Gets a value that represent an aborted test.
const xtd::string & expect() const noexcept
Gets the expect value string.
test(const xtd::string &name, const std::function< void()> &method, const xtd::diagnostics::stack_frame &stack_frame=xtd::diagnostics::stack_frame::current()) noexcept
Creates a new test instance with specified name, method and stack frame.
xtd::time_span elapsed_time() const noexcept
Gets the elapsed time of the test method.
const xtd::string & message() const noexcept
Gets the message.
const xtd::string & user_message() const noexcept
Gets the user message.
const xtd::date_time & start_time() const noexcept
Gets the start time of the test method.
bool ignored() const noexcept
Get a value that represent an ignored test.
const xtd::string & name() const noexcept
Gets the name of the test method.
bool succeed() const noexcept
Gets a value that represent an succeed test.
std::function< void()> method() const noexcept
Gets the test method.
const xtd::string & actual() const noexcept
Gets the actual value string.
const xtd::diagnostics::stack_frame stack_frame() const noexcept
Gets the stack frame of the test method.
test()=default
Creates a new test instance.
bool failed() const noexcept
Gest a value that represent an failed test.
The unit_test class is unit test base interface.
Definition unit_test.hpp:29
The valid class contains a collection of static methods that implement the most common assertions use...
Definition valid.hpp:22
#define tunit_export_
Define shared library export.
Definition tunit_export.hpp:13
xtd::basic_string< char > string
Represents text as a sequence of UTF-8 code units.
Definition __string_definitions.hpp:43
null_ptr null
Represents a null pointer value.
intmax_t intptr
Represent a pointer or a handle.
Definition intptr.hpp:23
The xtd::diagnostics namespace provides classes that allow you to interact with system processes,...
Definition assert_dialog_result.hpp:10
The tunit namespace contains a unit test library.
Definition abort_error.hpp:10
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition abstract_object.hpp:8
Contains tunit_export_ keyword.
Contains xtd::tunit::assert class.