slackapi / slackapi/bolt-python

Document about the ways to write unit tests for Bolt apps

Abierto
#380 21 comentarios 31 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

area:async area:sync docs enhancement
Lenguaje dominante
Python
Estrellas
1.3k
Forks
288
Merge medio
1 d 8 h
PR fusionados (30 d)
10

Descripción

I am looking to write unit tests for my Bolt API, which consists of an app with several handlers for events / messages. The handlers are both decorated using the app.event decorator, and make use of the app object to access things like the db connection that has been put on it. For example:

# in main.py
app = App(
    token=APP_TOKEN,
    signing_secret=SIGNING_SECRET,
    process_before_response=True,
    token_verification_enabled=token_verification_enabled,
)
app.db = db

# in api.py:
from .main import app

@app.command("/slashcommand")
def slash_command(ack, respond):
    ack()
    results = app.db.do_query()
    respond(...)

The thing is, I cannot find any framework pointers, or documentation, on how I would write reasonable unit tests for this. Presumably ones where the kwargs like ack and respond are replaced by test doubles. How do I do this?

The page URLs

Requirements

Please read the Contributing guidelines and Code of Conduct before creating this issue or pull request. By submitting, you are agreeing to those rules.

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con la documentación de Bolt for Python en https://slack.dev/bolt-python/ y revisa la estructura de los handlers mostrada en main.py y api.py, incluidos app.command, app.event, app.db, ack y respond. Documenta un enfoque razonable para las pruebas unitarias de estos handlers, incluidos test doubles para los argumentos de los handlers y las dependencias de app, con ejemplos que hagan claro el comportamiento esperado.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
python
Área
documentation, testing-qa
Tipo de issue
Documentación
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Tranquilo
Claridad
Bastante claro
Aptitud para principiantes
48/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.