Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php FacebookSDK包装器的自动测试_Php_Unit Testing_Facebook - Fatal编程技术网

Php FacebookSDK包装器的自动测试

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

在我的Facebook应用程序中,我有一个Facebook包装类来封装对Facebook API的一些调用。我想为这个包装器类编写一个单元测试,但由于它依赖于所谓的“访问令牌”,我们应该从Facebook动态获取它,所以我不确定是否可以编写一个

但显然Facebook SDK本身有一个PHPUnit测试类。在研究了测试代码一段时间后,我知道这涉及到创建基于cookie的虚拟会话密钥

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中创建模拟对象的几个库。我建议你在谷歌上搜索模拟对象和依赖注入;看看你是否能找到一些与你所做的相似的例子。