Book Image

PHPUnit Essentials

By : Zdenek Machek
Book Image

PHPUnit Essentials

By: Zdenek Machek

Overview of this book

<p>The ability to write unit tests and software testing have become skills that every PHP developer should master.<br /><br />This book is a practical guide to PHPUnit and unit testing, covering all aspects of writing PHPUnit tests and using them. The book shows why testable code is better code and how to write good tests with the help of simple and easy-to-understand examples.<br /><br />With this book, you will learn how to write, organize, and execute effective tests. Step-by-step techniques of how to write testable code, how to refactor the code, and how to run your tests are shown. You will also learn about advanced testing techniques, including how to test databases, APIs, and legacy code. PHPUnit Essentials is a guide for PHP developers who want to learn or improve their software testing skills. It is a book for developers who begin with testing but is also a good source of information for developers who are already familiar with PHPUnit.</p>
Table of Contents (21 chapters)
PHPUnit Essentials
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
5
Running Tests from the Command Line
Index

Test dependencies


Another way to share data between tests is to use the @depends annotation to specify when one test is depending on another. Also, one test can return a value that will be passed as an input parameter to the depending test. Sometimes, this is also called producer test and consumer test. The following code snippet is a simple example:

<?php

class DependsTest extends PHPUnit_Framework_TestCase
{
    public function testArrayFill()
    {
        $testedArray = array_fill(0,11,1);
        $this->assertInternalType('array', $testedArray);

        return $testedArray;
    }

    /**
     * @param  array $inputArray
     * @return array
     * @depends testArrayFill
     */
    public function testPop(array $inputArray)
    {
        array_pop($inputArray);
        $this->assertEquals(10,count($inputArray));

        return $inputArray;
    }

    /**
     * @param  array $inputArray
     * @return array
     * @depends testPop
     */
    public function testSum(array...