Exemplo pensando em uma API simples para gerenciar usuários.
Eu tenho uma interface que recebe os requests (e.g. GET, POST) e chama uma função que executa a operação
Eu começo com um teste unitário pensando na função que executará X tarefa.
def test_create_user_invalid_age():
assert create_user('Foo Jr', 'Test!') == {'error': 'Invalid name'}
def create_user(name, age):
if not age.isdigit():
return {'error': 'Invalid name'}
else:
... #creating user
return {'created': 'ID: 123123'}Depois de finalizar a função, eu testo a integração dela na API...(e.g. um request HTTP)
def test_post_new_user():
payload = {
'age': '123',
'name':'Foo Jr'
}
resp = client.post('/api/user', data=json.dumps(payload))
assert resp.status_code == 201
assert 'created' in json.loads(resp.data.decode('utf-8')).keys()Testes passando? Git Commit/Push, CI -> Deploy