UserTest.php
<?php
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
public function testThatWeCanGetTheFirstName(){
$user = new \App\Models\User;
$user->setFirstName('Billy');
$this->assertEquals($user->getFirstName(),'Billy');
}
public function testTrueAssertsToTrue()
{
$this->assertTrue(true);
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
.E. 3 / 3 (100%)
Time: 48 ms, Memory: 4.00MB
There was 1 error:
1) UserTest::testThatWeCanGetTheFirstName
Error: Class 'App\Models\User' not found
W:\w\git\phpunitbasics\tests\unit\UserTest.php:10
ERRORS!
Tests: 3, Assertions: 2, Errors: 1.
Add app\Models\User.php
<?php
namespace App\Models;
class User
{
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
.E. 3 / 3 (100%)
Time: 50 ms, Memory: 4.00MB
There was 1 error:
1) UserTest::testThatWeCanGetTheFirstName
Error: Call to undefined method App\Models\User::setFirstName()
W:\w\git\phpunitbasics\tests\unit\UserTest.php:12
ERRORS!
Tests: 3, Assertions: 2, Errors: 1.
Create setFirstName function
<?php
namespace App\Models;
class User
{
public $first_name;
public function setFirstName($name)
{
$this->first_name = $firstName;
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
.E. 3 / 3 (100%)
Time: 47 ms, Memory: 4.00MB
There was 1 error:
1) UserTest::testThatWeCanGetTheFirstName
Error: Call to undefined method App\Models\User::getFirstName()
W:\w\git\phpunitbasics\tests\unit\UserTest.php:14
ERRORS!
Tests: 3, Assertions: 2, Errors: 1.
Adding getUserName() with mock value
<?php
namespace App\Models;
class User
{
public $first_name;
public function setFirstName($firstName)
{
$this->first_name = $firstName;
}
public function getFirstName()
{
return 'Billy';
}
}
Run & PASS
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
... 3 / 3 (100%)
Time: 48 ms, Memory: 4.00MB
OK (3 tests, 3 assertions)
Refactor with actual logic
<?php
namespace App\Models;
class User
{
public $first_name;
public function setFirstName($firstName)
{
$this->first_name = $firstName;
}
public function getFirstName()
{
//return 'Billy';
return $this->first_name;
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
... 3 / 3 (100%)
Time: 47 ms, Memory: 4.00MB
OK (3 tests, 3 assertions)
Add Last Name Methods & Tests
User.php
<?php
namespace App\Models;
class User
{
public $first_name;
public $last_name;
public function setFirstName($firstName)
{
$this->first_name = $firstName;
}
public function getFirstName()
{
//return 'Billy';
return $this->first_name;
}
public function setLastName($lastName)
{
$this->last_name = $lastName;
}
public function getLastName()
{
//return 'Billy';
return $this->last_name;
}
}
UserTest.php
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
public function testThatWeCanGetTheFirstName(){
$user = new \App\Models\User;
$user->setFirstName('Billy');
$this->assertEquals($user->getFirstName(),'Billy');
}
public function testTrueAssertsToTrue()
{
$this->assertTrue(true);
}
public function testThatWeCanGetTheLastName(){
$user = new \App\Models\User;
$user->setLastName('Garrett');
$this->assertEquals($user->getLastName(),'Garrett');
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
.... 4 / 4 (100%)
Time: 46 ms, Memory: 4.00MB
OK (4 tests, 4 assertions)
w:\w\git\phpunitbasics (develop-init-setup -> origin)
Add Get Full Name method to User.php
<?php
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
public function testThatWeCanGetTheFirstName(){
$user = new \App\Models\User;
$user->setFirstName('Billy');
$this->assertEquals($user->getFirstName(),'Billy');
}
public function testTrueAssertsToTrue()
{
$this->assertTrue(true);
}
public function testThatWeCanGetTheLastName(){
$user = new \App\Models\User;
$user->setLastName('Garrett');
$this->assertEquals($user->getLastName(),'Garrett');
}
public function testFullNameIsReturned()
{
$user = new \App\Models\User;
$user->setFirstName('Billy');
$user->setLastName('Garrett');
$this->assertEquals($user->getFullName(), 'Billy Garrett');
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
..... 5 / 5 (100%)
Time: 47 ms, Memory: 4.00MB
OK (5 tests, 5 assertions)
Adding SetEmail Methods & Tests
User.php
<?php
namespace App\Models;
class User
{
public $first_name;
public $last_name;
public $email;
public function setFirstName($firstName)
{
$this->first_name = trim($firstName);
}
public function getFirstName()
{
//return 'Billy';
return $this->first_name;
}
public function setLastName($lastName)
{
$this->last_name = trim($lastName);
}
public function getLastName()
{
//return 'Billy';
return $this->last_name;
}
public function getFullName()
{
return $this->first_name ." ". $this->last_name;
}
public function setEmail($email)
{
$this->email = 'billy@somewhere.com';
return $email;
}
public function getEmail()
{
//$this->email = 'Billy@somewhere.com';
return $this->email;
}
public function getEmailVariables()
{
return [
'full_name' => $this->getFullName(),
'email' => $this->getEmail()
];
}
}
UserTest.php
<?php
use PHPUnit\Framework\TestCase;
class UserTest extends TestCase
{
public function testThatWeCanGetTheFirstName(){
$user = new \App\Models\User;
$user->setFirstName('Billy');
$this->assertEquals($user->getFirstName(),'Billy');
}
public function testTrueAssertsToTrue()
{
$this->assertTrue(true);
}
public function testThatWeCanGetTheLastName(){
$user = new \App\Models\User;
$user->setLastName('Garrett');
$this->assertEquals($user->getLastName(),'Garrett');
}
public function testFullNameIsReturned()
{
$user = new \App\Models\User;
$user->setFirstName('Billy');
$user->setLastName('Garrett');
TestCase::assertFalse(false,'this is false');
$this->assertEquals($user->getFullName(), 'Billy Garrett');
}
public function testFirstAndLastNameAreTrimmed()
{
$user = new \App\Models\User;
$user->setFirstName(' Billy ');
$user->setLastName(' Garrett');
$this->assertEquals($user->getFirstName(),'Billy');
$this->assertEquals($user->getLastName(),'Garrett');
//$this->assertEquals($user->getFullName(), 'Billy Garrett');
}
public function testEmailAddressCanBeSet()
{
$user = new \App\Models\User;
$user->setEmail('billy@somewhere.com');
$this->assertEquals($user->getEmail(), 'billy@somewhere.com');
}
public function testEmailVariablesContaintCorrectValues()
{
$user = new \App\Models\User;
$user->setFirstName('Billy');
$user->setLastName('Garrett');
$user->setEmail('billy@somewhere.com');
$emailVariables = $user->getEmailVariables();
$this->assertArrayHasKey('full_name', $emailVariables);
$this->assertArrayHasKey('email', $emailVariables);
$this->assertEquals($emailVariables['full_name'],'Billy Garrett');
$this->assertEquals($emailVariables['email'],'billy@somewhere.com');
}
}
Run
w:\w\git\phpunitbasics (develop-init-setup -> origin)
λ vendor\bin\phpunit
PHP Warning: Declaration of TemplateMethodsTest::onNotSuccessfulTest(Exception $e) should be compatible with PHPUnit\Framework\TestCase::onNotSuccessfulTest(Throwable $t) in W:\w\git\phpunitbasics\tests\unit\TemplateMethodsTest.php on line 54
Warning: Declaration of TemplateMethodsTest::onNotSuccessfulTest(Exception $e) should be compatible with PHPUnit\Framework\TestCase::onNotSuccessfulTest(Throwable $t) in W:\w\git\phpunitbasics\tests\unit\TemplateMethodsTest.php on line 54
PHPUnit 7.4.4 by Sebastian Bergmann and contributors.
Runtime: PHP 7.2.9
Configuration: W:\w\git\phpunitbasics\phpunit.xml
.TemplateMethodsTest::setUpBeforeClass
TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testOne
TemplateMethodsTest::assertPostConditions
TemplateMethodsTest::tearDown
.TemplateMethodsTest::setUp
TemplateMethodsTest::assertPreConditions
TemplateMethodsTest::testTwo
TemplateMethodsTest::assertPostConditions
TemplateMethodsTest::tearDown
.TemplateMethodsTest::tearDownAfterClass
....... 10 / 10 (100%)
Time: 54 ms, Memory: 4.00MB
OK (10 tests, 15 assertions)
- Log in to post comments