Bonjour les gens, J'ai écrit une implémentation de bas niveau pour une XmlRPC-Api et j'ai du mal à tester la communication.
Voici mon code.
abstract class BaseClient
{
protected function call($method, array $params = array())
{
$request = xmlrpc_encode_request($method, $parameters);
$file = file_get_contents($this->getDSN(), false, $context);
$response = xmlrpc_decode($file);
if ($response && xmlrpc_is_fault(array($response))) {
trigger_error("xmlrpc: {$response[faultString]} ({$response[faultCode]})");
}
return $response;
}
}
Client extends BaseClient
{
public function testCall($msg)
{
return $this->call('testMethid', array($msg));
}
}
Et voici mon test.
ClientTest extends PHPUnit_FrameWork_TestCase
{
public function testTestCall()
{
$c = new Client();
$resp = $c->testCall('Hello World');
$this->assertEquals('Hello World', $resp);
}
}
Ce test se plante à chaque fois, car il n'est pas possible d'accéder à l'api à l'intérieur d'un environnement de test. Je ne vois pas de solution pour simuler et injecter l'api call
fonction. Que puis-je faire ? Peut-être que ma structure d'objet est mauvaise et ne permet pas de tester et comment puis-je améliorer cette structure (si cela se produit) ?
Santé.