blob: bb1424e5adc76ab82b0fd7564dd4fd44186859bb [file] [view]
# Backend Testing Guide
This guide covers how to test the Python API backend using pytest.
## Overview
Backend tests use [pytest](https://docs.pytest.org/) to test the FastAPI application, services, and models.
## Running Backend Tests
```bash
cd webapp/packages/api/user-service
# Run all tests
python -m pytest
# Run unit tests only
python -m pytest tests/unit/
# Run integration tests only
python -m pytest tests/integration/
# Run with coverage
python -m pytest --cov=. --cov-report=html
```
## Test Structure
```
tests/
conftest.py # Shared fixtures
factories/ # Test data factories
agent_factory.py
user_factory.py
unit/ # Unit tests
test_user_service.py
test_user_model.py
integration/ # Integration tests
test_health_endpoint.py
```
## Writing Tests
```python
import pytest
from services.user_service import UserService
def test_create_user():
service = UserService()
user = service.create_user(name="Test User")
assert user.name == "Test User"
```
## Using Factories
```python
from tests.factories.user_factory import UserFactory
def test_user_with_factory():
user = UserFactory.create()
assert user.id is not None
```
## Configuration
- pytest configuration: `pytest.ini`
- Coverage configuration: `.coveragerc`
## Related Documentation
- [Unit Testing Guide](./unit-testing.md)
- [Integration Testing Guide](./integration-testing.md)
- [Coverage Requirements](./coverage.md)