Bonjour sekitaka.
Si vous développez une application Facebook, vous devrez mettre en œuvre des tests pour les fonctions que vous publiez à l'aide de l'API Graph. Au début, je l'ai testé avec mon propre compte, mais en matière d'automatisation, j'ai dû envisager une autre méthode.
Après des recherches, Facebook a la possibilité de créer des utilisateurs de test pour le développement. Cette fonctionnalité est fournie à la fois dans l'interface graphique et dans l'API, vous permettant de créer et de supprimer des utilisateurs de test. En l'utilisant pour générer un utilisateur de test Facebook pour chaque test et exécuter le test, il est possible de prendre en charge l'automatisation des tests.
L'exemple de cas de test en python est le suivant.
sample.py
# coding:utf-8
# !/usr/bin/python
import facebook
import unittest
from unittest import TestCase
#Fonction à tester
#Postez simplement un message sur le mur
def post(message, fb_token):
graph = facebook.GraphAPI(fb_token)
graph.put_wall_post(message)
class Test(TestCase):
#Utilisateur test Facebook
FB_USER = None
FB_APP_ID = 'YOUR_APP_ID'
FB_APP_SECRET = 'YOUR_APP_SECRET'
@classmethod
def setUpClass(cls):
super(Test, cls).setUpClass()
#Créer un utilisateur de test
app_token = facebook.GraphAPI().get_app_access_token(cls.FB_APP_ID,
cls.FB_APP_SECRET,
True)
graph = facebook.GraphAPI(app_token)
cls.FB_USER = graph.request(cls.FB_APP_ID + '/accounts/test-users', {
'permissions': 'public_profile,user_photos,publish_actions'
}, {},
method='POST')
@classmethod
def tearDownClass(cls):
super(Test, cls).tearDownClass()
#Supprimer l'utilisateur de test
app_token = facebook.GraphAPI().get_app_access_token(cls.FB_APP_ID,
cls.FB_APP_SECRET,
True)
graph = facebook.GraphAPI(app_token)
graph.request(cls.FB_USER['id'], {}, None, method='DELETE')
#Testez que l'article peut être publié normalement
def test_post(self):
print Test.FB_USER
post("hogehoge", Test.FB_USER['access_token'])
if __name__ == '__main__':
unittest.main()
J'ai mis l'exemple de code de python cette fois, mais comme l'API Graph est basée sur HTTP, je pense que le même mécanisme peut être créé quelle que soit la langue. Il est possible que les spécifications de l'API changent avant que vous ne le sachiez, c'est donc une bonne idée d'effectuer des tests réguliers sur le CI des fonctions qui utilisent l'API Graph.
Recommended Posts