Hallo Sekitaka.
Wenn Sie eine Facebook-App entwickeln, müssen Sie Tests für die Funktionen implementieren, die Sie mithilfe der Graph-API veröffentlichen. Zuerst habe ich es mit meinem eigenen Konto getestet, aber wenn es um Automatisierung ging, musste ich einen anderen Weg in Betracht ziehen.
Nach der Recherche kann Facebook Testbenutzer für die Entwicklung erstellen. Diese Funktion wird sowohl in der GUI als auch in der API bereitgestellt, sodass Sie Testbenutzer erstellen und löschen können. Indem Sie damit einen Facebook-Testbenutzer für jeden Test generieren und den Test ausführen, können Sie die Testautomatisierung unterstützen.
Der Beispieltestfall in Python ist wie folgt.
sample.py
# coding:utf-8
# !/usr/bin/python
import facebook
import unittest
from unittest import TestCase
#Zu testende Funktion
#Schreiben Sie einfach eine Nachricht an die Wand
def post(message, fb_token):
graph = facebook.GraphAPI(fb_token)
graph.put_wall_post(message)
class Test(TestCase):
#Facebook Testbenutzer
FB_USER = None
FB_APP_ID = 'YOUR_APP_ID'
FB_APP_SECRET = 'YOUR_APP_SECRET'
@classmethod
def setUpClass(cls):
super(Test, cls).setUpClass()
#Testbenutzer erstellen
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()
#Testbenutzer löschen
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')
#Testen Sie, ob dieser Beitrag normal gepostet werden kann
def test_post(self):
print Test.FB_USER
post("hogehoge", Test.FB_USER['access_token'])
if __name__ == '__main__':
unittest.main()
Ich habe diesmal den Beispielcode von Python eingefügt, aber da die Graph-API HTTP-basiert ist, denke ich, dass der gleiche Mechanismus unabhängig von der Sprache erstellt werden kann. Es ist möglich, dass sich die API-Spezifikationen ändern, bevor Sie es wissen. Daher empfiehlt es sich, regelmäßige Tests des CI von Funktionen durchzuführen, die die Graph-API verwenden.
Recommended Posts