1. Go to this page and download the library: Download tototoshi/staticmock library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
class User
{
private $email;
public function __construct($email)
{
$this->email = $email;
}
public function getFeed()
{
$g_feed = GooglePlusClient::getFeed($this->email, 1);
$f_feed = FacebookClient::getFeed($this->email, 1);
return array_merge($g_feed, $f_feed);
}
}
class GooglePlusClient
{
public static function getFeed($email, $limit)
{
// send a request to Google
}
}
class FacebookClient
{
public static function getFeed($email, $limit)
{
// send a request to Facebook
}
}
class UserTest extends \PHPUnit\Framework\TestCase
{
public function testGetFeed()
{
$gmock = StaticMock::mock('GooglePlusClient');
$fmock = StaticMock::mock('FacebookClient');
$gmock->shouldReceive('getFeed')->andReturn(array("From Google+"));
$fmock->shouldReceive('getFeed')->andReturn(array("From Facebook"));
$user = new User('[email protected]');
$this->assertEquals(array('From Google+', 'From Facebook'), $user->getFeed());
}
}
class UserTest extends \PHPUnit\Framework\TestCase
{
public function testGetFeed()
{
StaticMock::mock('GooglePlusClient')
->shouldReceive('getFeed')
->andReturn(array("From Google+"));
StaticMock::mock('FacebookClient::getFeed')
->andReturn(array("From Facebook"));
$user = new User('[email protected]');
$this->assertEquals(array('From Google+', 'From Facebook'), $user->getFeed());
}
}
class User
{
private $email;
public function __construct($email)
{
$this->email = $email;
}
public function register()
{
$this->save();
Mailer::send($this->email, 'Welcome to StaticMock');
}
private function save()
{
echo 'save!';
}
}
class Mailer
{
public static function send($email, $body)
{
// send mail
}
}
class UserTest extends \PHPUnit\Framework\TestCase
{
public function testRegister()
{
$mock = StaticMock::mock('Mailer');
$mock->shouldReceive('send')->andImplement(function () {
echo "send email";
});
$user = new User('[email protected]');
$user->register();
}
}
use StaticMock\Mock;
use StaticMock\PHPUnit\StaticMockConstraint;
class WithPHPUnitTest extends \PHPUnit\Framework\TestCase
{
public function assertStaticMock(Mock $mock)
{
$this->assertThat($mock, new StaticMockConstraint);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.