Download the PHP package digitalzenworks/api-test without Composer

On this page you can find all versions of the php package digitalzenworks/api-test. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package api-test

ApiTest

A library for testing web APIs with PHPUnit.

Please :star: star this project!

Getting Started

Requirements/dependencies

This requirement could potentially be relaxed to older version of PHP upon request.

Installation

Git

git clone https://github.com/jamesjohnmcguire/ApiTest

Composer

composer require --dev https://packagist.org/packages/digitalzenworks/api-test

Usage:

API Testing

There is one main class with one main method. You can call it like this:

The apiEndPointTest parameters are:

Parameter Type Parameter
method string The HTTP method to use.
endPoint string The API end point.
data ?string The request data.
testOptions TestOptions A set of options.
Refer to TestOptions for details.

TestOptions is an object with the following properties:

Property Default Description
contentRequired true Indicates whether
content is required
in the response
body.
errorExpected false Indicates whether an
error is expected.
guzzleAdditionalOptions null Additional Guzzle
options to be
included.
requestDataType null The data type for
the request. Can be
one of the following
values: 'body',
'form_params',
'json' or
'multipart'.
tryBasicAsserts true Indicates whether
included basic
assertions should be
tried.
userAgent The user agent to
include in
the headers.

Page or End-to-End Testing

This also supports testing HTML pages directly. You can call it like this:

Additional Examples

You can refer to the unit tests for additional example usage.

Additional Notes

This uses Guzzle to process the API request.

Guzzle Response Object

You can access the Guzzle response object by accessing the public $response property of PageTester. like:

Note: Status is already checked within TestSitePage. It's just included here for the purposes of example.

Guzzle History Object

You can also access the Guzzle history (handler) object by accessing the public $response property of PageTester. like:

This can be useful for tracking redirects, among other things.

Details on tryBasicAsserts

If tryBasicAsserts is true, several basic assertions will be performed based on the provided options and response. Below is a summary of the assertions, their purposes, and the conditions under which they are applied.

Assertion Description Condition
assertNotEmpty($body) Verifies that the content body is not empty. Checked if $contentRequired is true.
assertJson($body) Validates that the content body is valid JSON. Checked if $jsonRequired is true.
assertEquals(200, $status) Ensures the HTTP status code is 200 (OK). Checked if $errorExpected is false.
assertNotEquals(200, $status) Ensures the HTTP status code is not 200. Checked if $errorExpected is true.
assertArrayHasKey('error', $data) Checks if the error key exists in the data array. Checked if $errorExpected is true.
assertArrayNotHasKey('error', $data) Checks if the error key does not exist in the data array. Checked if $errorExpected is false.
assertTrue($errorExpected) Verifies that $errorExpected is true. Checked during exception handling.

Contributing

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".

Process:

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

Coding style

Please match the current coding style. Most notably:

  1. One operation per line
  2. Use complete English words in variable and method names
  3. Attempt to declare variable and method names in a self-documenting manner

License

Distributed under the MIT License. See LICENSE for more information.

Contact

James John McGuire - @jamesmc - [email protected]

Project Link: https://github.com/jamesjohnmcguire/ApiTest


All versions of api-test with dependencies

PHP Build Version
Package Version
Requires php-http/guzzle7-adapter Version ^1.0
phpunit/phpunit Version ^11.0 || ^12.0
roave/security-advisories Version dev-master
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package digitalzenworks/api-test contains the following files

Loading the files please wait ....