Geri Borbás
Geri Borbás

Reputation: 16628

How to unit test PHP REST API?

I mean I know I can write PHPUnit tests,
but how to mock web server / mysql server?

I'd also like to test MySQL / database code.
Best would be something suitable for Travis CI.

Upvotes: 0

Views: 1259

Answers (1)

delboy1978uk
delboy1978uk

Reputation: 12384

I like using codeception for my acceptance tests, but regardless, the travis setup is pretty much the same. Install a selenium server!

language: php

php:
  - 5.6
  - 7.0
  - 7.1
  - hhvm

matrix:
  allow_failures:
    - php: hhvm

addons:
  hosts:
    - FAKEHOSTNAMEHERE

sudo: false


install:
  - wget http://selenium-release.storage.googleapis.com/2.42/selenium-server-standalone-2.42.2.jar
  - composer install


before_script:
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start
  - sleep 5
  - java -jar selenium-server-standalone-2.42.2.jar -port 4444 &
  - "mysql -e 'create database codeception_test;'"
  - nohup php -S FAKEHOSTNAMEHERE:8000 public/index.php &
script:
  - php vendor/bin/codecept run  --coverage-xml --env travis
after_script:
  - phpunit --coverage-clover=coverage.clover
  - wget https://scrutinizer-ci.com/ocular.phar
  - php ocular.phar code-coverage:upload --format=php-clover tests/_output/coverage.xml

Just replace the FAKEHOSTNAMEHERE with whatever you need.

Upvotes: 1

Related Questions