# FunctionTest

<a id="functiontest"></a>

# FunctionTest

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

class FunctionTest
```

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

> **Inherits:** [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1)

[Test](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) wrapper for standalone test functions.

## List of all members

| Name | Kind | Owner |
|------|------|-------|
| [`target`](#target-1) | `variable` | Declared here |
| [`FunctionTest`](#functiontest-1) | `function` | Declared here |
| [`~FunctionTest`](#functiontest-2) | `function` | Declared here |
| [`run`](#run-8) | `function` | Declared here |
| [`TestRunner`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#testrunner) | `friend` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`name`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#name-8) | `variable` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`errors`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#errors) | `variable` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`duration`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#duration-1) | `variable` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-2) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`~Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-3) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`run`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#run-9) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`passed`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#passed-1) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-4) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |
| [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#operator-193) | `function` | Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1) |

## Inherited from [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-1)

| Kind | Name | Description |
|------|------|-------------|
| `friend` | [`TestRunner`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#testrunner)  | Tests belong to a [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) instance. |
| `variable` | [`name`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#name-8)  | The name of the test. |
| `variable` | [`errors`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#errors)  | A list of test errors. |
| `variable` | [`duration`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#duration-1)  | The test run duration for benchmarking. |
| `function` | [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-2)  |  |
| `function` | [`~Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-3) `virtual` | Should remain protected. |
| `function` | [`run`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#run-9) `virtual` | Called by the [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) to run the test. |
| `function` | [`passed`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#passed-1)  | Return true when the test passed without errors. |
| `function` | [`Test`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#test-4)  | Deleted constructor. |
| `function` | [`operator=`](https://auscaster.com/icey/docs/api-reference/icy-test-Test.md#operator-193)  | Deleted assignment operator. |

## Public Attributes

| Return | Name | Description |
|--------|------|-------------|
| `std::function< void()>` | [`target`](#target-1)  |  |

---

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

### target

```cpp
std::function< void()> target
```

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

## Public Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`FunctionTest`](#functiontest-1) `inline` |  |

---

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

### FunctionTest

`inline`

```cpp
inline FunctionTest(std::function< void()> target, const std::string & name = "Unnamed Test")
```

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

#### Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `target` | `std::function< void()>` | Lambda or function to execute as the test body. |
| `name` | `const std::string &` | Human-readable test name. |

## Protected Methods

| Return | Name | Description |
|--------|------|-------------|
|  | [`~FunctionTest`](#functiontest-2) `virtual` `inline` |  |
| `void` | [`run`](#run-8) `virtual` `inline` `override` | Called by the [TestRunner](https://auscaster.com/icey/docs/api-reference/icy-test-TestRunner.md#testrunner-1) to run the test. |

---

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

### ~FunctionTest

`virtual` `inline`

```cpp
virtual inline ~FunctionTest()
```

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

---

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

### run

`virtual` `inline` `override`

```cpp
virtual inline void run() override
```

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

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

#### Reimplements

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