Énoncé du problème :
Lors d'une tentative de test unitaire sur une application Flask, l'appel de 'before_request ' en dehors du contexte de l'application génère une RuntimeError :
with patch('__main__.mysql.connector.connect') as mock_mysql_connector_connect: object = TestMySQL() object.before_request() # Runtime error on calling this
Root Cause :
Flask utilise un contexte d'application pour gérer les données spécifiques à la requête. Lors de l'appel de fonctions en dehors de ce contexte, comme dans le test unitaire, les ressources nécessaires ne sont pas disponibles, entraînant l'erreur susmentionnée.
Solution :
Pour résoudre ce problème, le le test unitaire doit être exécuté dans le contexte d’application. Ceci peut être réalisé en utilisant le décorateur 'app_context()' :
def test_connection(self): with app.app_context(): # Test code here
Alternativement, l'appel 'app_context()' peut être encapsulé dans une méthode de configuration de test.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!