Daniel Siepmann - Coding is Art

Blog Posts

Topic: testing

Mock Guzzle Requests in Functional Tests

Published: , Updated:

Tested with TYPO3: 11 LTS, 10 LTS

Topics: testing, typo3

Functional tests won't mock single implementations. But code often interacts with external systems by sending requests, e.g. via Guzzle. Guzzle is the default library used within TYPO3, so you might need to mock the requests within functional tests.

This blog post explains our solution which is based on Guzzle Docs and Susis Blog post on how to mock Guzzle Client implementation within Unit Tests.

Video: PHPUnit Introduction

Published: , Updated:

Tested with TYPO3: 10 LTS, 9 LTS, 8 LTS

Topics: video, tutorial, testing

This is my very first video. It will introduce you to the beginning of PHPUnit to create unit tests for PHP Code.

The video includes instructions on how to install dependencies via composer, as well as how to write and execute first tests.

Execution is done on command line, as this should be the same on all environments.

Executing TYPO3 acceptance tests

Published: , Updated:

Topics: testing, typo3

TYPO3 CMS is an open source content management system with lots of contributions. The system has a huge code base which is partially very old and therefore contains a lot of legacy code. Therefore it’s very important to cover existing features with tests, to not break anything if you improve the system.

TYPO3 CMS was improved with a lot of unit and functional tests in the past. Since some time, there are also acceptance tests available, which will test functionality of the backend. All of these tests are executed by the TYPO3 CMS own Bamboo to make sure no merge will break anything. If you want to execute the existing acceptance tests, you already might be a developer and luckily, the repository contains all necessary information to get started.

In this Blog post I will show how to get the necessary information out of the source files and to execute these tests. This should also help in the future, as the way to get there is described, not only how to execute the tests now.