¿Cómo funciona el marco de prueba funcional de bitcoin?

¿Alguien podría explicar cómo y dónde en el código las llamadas del marco de prueba de bitcoin se asignan al código central de bitcoin C ++ o las llamadas RPC de modo que el conjunto de regresión prueba la funcionalidad central de bitcoin?

Antecedentes y más detalles Estoy escribiendo una aplicación de cadena de bloques y estaba pensando en cómo puedo hacer una regresión mientras sigo desarrollando. Quería aprovechar el diseño utilizado por bitcoin (o cualquier otra aplicación de cadena de bloques). Esperaría que el marco llamara a las clases de C ++ en el núcleo de bitcoin directamente o usara RPC de los scripts de python para que se prueben las características.

Descubrí que las pruebas funcionales de bitcoin están escritas en scripts de python, por lo que test_runner.py llama a un montón de scripts que prueban características específicas.

Agradezco su ayuda para detectar el código en los scripts de python en el marco que lo hace.

Respuestas (1)

Las pruebas funcionales prueban los RPC. Las pruebas unitarias prueban el código C++ directamente llamando a las funciones.

Los marcos de pruebas funcionales utilizan una versión de python-bitcoinrpc que se puede encontrar aquí . Esta biblioteca permite que el marco de prueba llame a los comandos RPC como si fueran funciones de python; authproxy maneja la conversión a solicitudes HTTP POST para el servidor RPC. Entonces, cuando ve líneas como self.nodes[0].getblockchaininfo(), en realidad está llamando al getblockchaininfocomando node0. Verá muchas líneas como esta a lo largo de las pruebas funcionales.