> For the complete documentation index, see [llms.txt](https://godrose.gitbook.io/attest/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://godrose.gitbook.io/attest/master.md).

# Overview

### Motivation

The software development process involves many stages, ranging from early design to deployment. Each and every stage in this process can and should be verified before proceeding to the next stage, The ultimate tool for this end is the unit testing which should simulate various scenarios and provide the fastest possible feedback. Ensuring unit testing integration as well as other types of automated testing is crucial for futher continuous delivery and deployment implementations.

### Fakes and Data&#x20;

There are various definitions of unit tests which depend on the person actually defining them yet one thing remains common: the dependencies which are external to the test scope should be substituted by the entities simulating the desired behavior. You may be familiar with them as **mocks**, **substitutes**, **stubs**. In this article they will be referred to as **fakes**. \
Another important aspect of writing successful tests is the ability to efficiently create and load the actual data during the **Arrange** test stage. This is needed to simulate even more complex scenarios.

### Testing

Every unit test has its own flow and so does the whole suite. The flow steps are the same independently of the domain and/or app being tested and they can be encapsulated into the correspondent abstractions.  These abstractions as well as the most common implementations can be reused across various testing suites and greatly reduce testing framework development time.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://godrose.gitbook.io/attest/master.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
