Php FacebookSDK包装器的自动测试
在我的Facebook应用程序中,我有一个Facebook包装类来封装对Facebook API的一些调用。我想为这个包装器类编写一个单元测试,但由于它依赖于所谓的“访问令牌”,我们应该从Facebook动态获取它,所以我不确定是否可以编写一个 但显然Facebook SDK本身有一个PHPUnit测试类。在研究了测试代码一段时间后,我知道这涉及到创建基于cookie的虚拟会话密钥Php FacebookSDK包装器的自动测试,php,unit-testing,facebook,Php,Unit Testing,Facebook,在我的Facebook应用程序中,我有一个Facebook包装类来封装对Facebook API的一些调用。我想为这个包装器类编写一个单元测试,但由于它依赖于所谓的“访问令牌”,我们应该从Facebook动态获取它,所以我不确定是否可以编写一个 但显然Facebook SDK本身有一个PHPUnit测试类。在研究了测试代码一段时间后,我知道这涉及到创建基于cookie的虚拟会话密钥 private static $VALID_EXPIRED_SESSION = array( 'acces
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) . '"';
我不明白的是,如何获得“访问令牌”、“sig”、“会话密钥”等?就我而言,它应该是从Facebook动态交换的,并且涉及用户操作(登录)。我对Facebook的开发一点也不熟悉。然而,有一种称为“依赖注入”的通用模式,您可能希望查看它 如果您正在测试的类中有一些需要伪造的对象,那么您可以编写代码以便传入需要伪造的对象
这有帮助吗?我以前听说过类似的东西,叫做“模拟对象”。所以在我的例子中,我需要创建一个伪造的Facebook SDK,它不需要查询Facebook服务器,而是从本地数据读取数据?模拟对象可能非常有用。有一些很好的库可以轻松地生成它们。我熟悉在.net中创建模拟对象的几个库。我建议你在谷歌上搜索模拟对象和依赖注入;看看你是否能找到一些与你所做的相似的例子。