# Test

<a id="test-1"></a>

# Test

```cpp
#include <icy/test.h>

class Test
```

[Defined in src/base/include/icy/test.h:81](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L81)

> **Subclassed by:** [`FunctionTest`](https://auscaster.com/icey/docs/api-reference/icy-test-FunctionTest.md#functiontest)

[Test](#test-1) wrapper class.

This class is for implementing any kind of unit test that can be executed by a [`TestRunner`](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1).

## Friends

| Name | Description |
|------|-------------|
| [`TestRunner`](#testrunner)  | Tests belong to a [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) instance. |

---

<a id="testrunner"></a>

### TestRunner

```cpp
friend class TestRunner
```

[Defined in src/base/include/icy/test.h:110](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L110)

Tests belong to a [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) instance.

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::string` | [`name`](#name-8)  | The name of the test. |
| [`SErrorist`](https://auscaster.com/icey/docs/api-reference/icy-test.md#serrorist) | [`errors`](#errors)  | A list of test errors. |
| `double` | [`duration`](#duration-1)  | The test run duration for benchmarking. |

---

<a id="name-8"></a>

### name

```cpp
std::string name
```

[Defined in src/base/include/icy/test.h:97](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L97)

The name of the test.

---

<a id="errors"></a>

### errors

```cpp
SErrorist errors
```

Type: [`SErrorist`](https://auscaster.com/icey/docs/api-reference/icy-test.md#serrorist)

[Defined in src/base/include/icy/test.h:100](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L100)

A list of test errors.

---

<a id="duration-1"></a>

### duration

```cpp
double duration
```

[Defined in src/base/include/icy/test.h:103](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L103)

The test run duration for benchmarking.

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Test`](#test-2)  |  |
|  | [`~Test`](#test-3) `virtual` | Should remain protected. |
| `void` | [`run`](#run-9) `virtual` | Called by the [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) to run the test. |
| `bool` | [`passed`](#passed-1)  | Return true when the test passed without errors. |

---

<a id="test-2"></a>

### Test

```cpp
Test(const std::string & name = "Unnamed Test")
```

[Defined in src/base/include/icy/test.h:85](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L85)

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `name` | `const std::string &` | Human-readable name displayed in test output. |

---

<a id="test-3"></a>

### ~Test

`virtual`

```cpp
virtual ~Test()
```

[Defined in src/base/include/icy/test.h:88](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L88)

Should remain protected.

---

<a id="run-9"></a>

### run

`virtual`

```cpp
virtual void run()
```

[Defined in src/base/include/icy/test.h:91](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L91)

Called by the [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) to run the test.

#### Reimplemented by

- [`FunctionTest::run`](https://auscaster.com/icey/docs/api-reference/icy-test-FunctionTest.md#run-8)

---

<a id="passed-1"></a>

### passed

```cpp
bool passed()
```

[Defined in src/base/include/icy/test.h:94](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L94)

Return true when the test passed without errors.

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`Test`](#test-4)  | Deleted constructor. |
| [`Test`](#test-1) & | [`operator=`](#operator-193)  | Deleted assignment operator. |

---

<a id="test-4"></a>

### Test

```cpp
Test(const Test & test) = delete
```

[Defined in src/base/include/icy/test.h:106](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L106)

Deleted constructor.

---

<a id="operator-193"></a>

### operator=

```cpp
Test & operator=(Test const &) = delete
```

[Defined in src/base/include/icy/test.h:107](https://github.com/auscaster/icey/blob/main/src/base/include/icy/test.h#L107)

Deleted assignment operator.
