The feature files in this repository are meant as documentation and executable tests.
They are primarily serving the developers, in order to support development.
They are executed together with the unit tests, if possible.
Therefore, in this repository, they must not be understood as actuale end-to-end tests, but rather as more expressive unit and component tests.
As a result, mocks might be used instead of actual infrastructure components, in order to keep the tests fast and focused on the logic of the use cases.
Test public interfaces, not internal implementation; tests are independent and deterministic
No sleep, wall-clock time, or unfixed random seeds; inject clocks and UUID generators
No network or file-system access in unit tests
Mock only at architectural layer boundaries (infra interfaces defined in usecase); never mock domain logic
Every use case must have a BDD scenario (Godog for Go, Behave for Python, Catch2 for C++, Cucumber+JUnit for Java)
Use builders or factories for test data; never depend on test execution order
BDD tests contained herein are meant for developers.
They are not meant as actual end-to-end tests.
Therefore, mocks may be used instead of actual infrastructure components