1. Go to this page and download the library: Download lark/resttest 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/ */
lark / resttest example snippets
use LarkRestTest\RestTest;
est dir
// this can also be done in composer.json using 1));
$loader->register();
// handle options, like debugging
$argv = $_SERVER['argv'] ?? [];
$isDebug = false;
if (in_array('--debug', $argv) || in_array('-d', $argv))
{
$isDebug = true;
}
// run tests using base namespace and directory
RestTest::run('Tests\Rest', __DIR__, $isDebug);
namespace Tests\Rest;
use LarkRestTest\RestTest;
class UserTest extends RestTest
{
public function __construct()
{
// HTTP client must be initialized with a base URL before
// any client methods can be called
$this->client('http://localhost');
}
/**
* Create users
* @test
*/
public function create(): void
{
// send request:
// POST /users
// [{"name":"test"},{"name":"test2"}]
$this->clientPost('/users', [
['name' => 'test'],
['name' => 'test2']
]);
// must be response status code 200
$this->expectCodeOk();
// body must be the same as this
// because "id" will be unknown use "$$VAR" to allow any value
$this->expectBodySame([
['id' => '$$VAR', 'name' => 'test'],
['id' => '$$VAR', 'name' => 'test2']
]);
// save IDs for later tests
$this->ids('user');
}
/**
* Delete user
* @test
* @depends create
*/
public function deleteOne(): void
{
// get ID from earlier save in create method
$id = $this->id('user');
// also can use $this->id('user', 1); to get ID at exact index
$this->clientDelete('/users/' . $id);
$this->expectCodeOk();
$this->expectBodySame(['affected' => 1]);
}
}
/**
* Delete user
* @test
* @depends create
*/
public function deleteOne(): callable
{
// ...
return function() {
// do cleanup here
};
}
/**
* Update users
* @test
* @depends create
*/
public function update(): void
{
$this->clientPatch('/users', [
[
'id' => $this->id('user', 1),
'name' => 'test5'
],
[
'id' => $this->id('user', 2),
'name' => 'test6'
]
]);
// this will possibly fail depending on the order of objects
// returned in the response body
$this->expectBodySame([
[
'id' => $this->id('user', 1),
'name' => 'test5'
],
[
'id' => $this->id('user', 2),
'name' => 'test6'
]
])
}
$ php run.php
Running tests...
------------------------------------------------------------------------------------------
Base namespace: Tests\Rest
Base directory: /myproject/tests/Rest
Test classes: 1
------------------------------------------------------------------------------------------
001) 200 Tests\Rest\UserTest::create # Create users [0.0475s]
002) 200 Tests\Rest\UserTest::deleteOne # Delete user [0.0312s]
------------------------------------------------------------------------------------------
OK (Tests: 2, Assertions: 4) in 0.0874s
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.