Dans mon application Facebook, j'ai une classe wrapper Facebook pour encapsuler un appel à Facebook API. Je veux écrire un test unitaire pour cette classe wrapper, mais comme cela dépend d'un soi-disant "token d'accès", que nous devrions obtenir dynamiquement de Facebook, je ne suis pas sûr qu'il soit possible d'en écrire un.Tests automatisés pour le wrapper Facebook SDK
Mais apparemment le SDK Facebook lui-même a une classe de test PHPUnit. Après avoir étudié le code de test pendant un certain temps, je sais que cela implique une création de clé de session basée sur des cookies factices.
private static $VALID_EXPIRED_SESSION = array(
'access_token' => '254752073152|2.I_eTFkcTKSzX5no3jI4r1Q__.3600.1273359600-1677846385|uI7GwrmBUed8seZZ05JbdzGFUpk.',
'expires' => '1273359600',
'secret' => '0d9F7pxWjM_QakY_51VZqw__',
'session_key' => '2.I_eTFkcTKSzX5no3jI4r1Q__.3600.1273359600-1677846385',
'sig' => '9f6ae89510b30dddb3f864f3caf32fb3',
'uid' => '1677846385'
);
.
.
.
$cookieName = 'fbs_' . self::APP_ID;
$session = self::$VALID_EXPIRED_SESSION;
$_COOKIE[$cookieName] = '"' . http_build_query($session) . '"';
Ce que je ne comprends pas, comment puis-je obtenir le "access_token", "sig", "session_key" etc? En ce qui me concerne, il devrait être échangé dynamiquement de Facebook et implique l'action de l'utilisateur (se connecter).
J'ai entendu parler de quelque chose de similaire auparavant, appelé "objets simulés". Donc, dans mon cas, j'ai besoin de créer un faux SDK Facebook, qui au lieu d'interroger le serveur Facebook, il lit à partir de données locales? – Andree
Les objets fantaisie peuvent être très utiles. Il y a quelques bonnes bibliothèques pour les générer facilement. Je connais plusieurs bibliothèques pour créer des objets fantaisie dans .net. Je vous suggère de faire une recherche Google pour les objets simulés et l'injection de dépendance; voyez si vous pouvez trouver des exemples similaires à ce que vous faites. –