dry-python / dry-python/dry-python.github.io

Database fixtures considered harmful.

Open
#116 0 comments 0 reactions 0 assignees View on GitHub
blog
Dominant language
HTML
Stars
10
Forks
5
PR merge metrics
No merged PRs in 30d

Description

#### An article about better test fixtures
* `dependencies` can turn `stories` **business objects** into pytest fixtures.
* We will write better tests because our database fills up logic **does not duplicate** in `FactoryBoy`.
* `@value` decorator can be used to return normal results from the factories.
```python
@register
class SubmitCodeFixture(SubmitCode):

name = 'submit_code'

@value
def fixture(submit_code, user, token):
return submit_code(user, token)

user = require('request_code')

token = Faker('uuid')
```
* **profit**: Tests coupled with business logic will fail if this logic changes. On the other side, we'll need to change each `FactoryBoy` usage in our test suite to mirror actual behavior.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.