次のように、Atoum を使用してクラスの単体テストを行うことができます。
<?php
namespace vendor2\project2;
class helloWorld2
{
public function say()
{
return 'Hello World!';
}
public function add($a,$b)
{
return ($a+$b);
//return 'Hello World!';
}
}
?>
すべて問題なく、いくつかのテスト ケースを達成
しましたが、テストしたいクラスに require_once を追加すると、Atoum はそのクラスをテストできません。
<?php
namespace vendor2\project2;
$ServerRoot = realpath(__DIR__. '/..');
require_once $ServerRoot.'/db/dbTables/M4_Warrior.php';
class helloWorld2
{
public function say()
{
return 'Hello World!';
}
public function add($a,$b)
{
return ($a+$b);
//return 'Hello World!';
}
}
?>
require_once で行をコメントすると、すべて問題あり
ません。なぜですか?
テストphpファイルも次のとおりです。
<?php
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
namespace vendor2\project2\tests\units;
$ServerRoot = realpath(__DIR__. '/../..');
require_once $ServerRoot.'/HandleCommands/helloWorld2.php';
use atoum;
/**
* Test class for helloWorld.
*
* @author Vh80705
*/
class helloWorld2 extends atoum {
// put your code here
public function test1() {
$true = true;
$false = false;
$this
->boolean($true)
->isFalse(); // fails
}
public function test2() {
$true = true;
$false = false;
$this
->boolean($false)
->isFalse(); // succeed
}
public function test3 ()
{
$this
// creation of a new instance of the tested class
->given($this->newTestedInstance)
->then
// we test that the getHiAtoum method returns
// a string...
->string($this->testedInstance->say())
// ... and that this string is the one we want,
// namely 'Hi atoum !'
->isEqualTo('Hi atoum !')
;
}
public function test4 ()
{
$this
// creation of a new instance of the tested class
->given($this->newTestedInstance)
->then
// we test that the getHiAtoum method returns
// a string...
->string($this->testedInstance->say())
// ... and that this string is the one we want,
// namely 'Hi atoum !'
->isEqualTo('Hello World!')
;
}
public function test5 ()
{
$this
// creation of a new instance of the tested class
->given($this->newTestedInstance)
->then
// we test that the getHiAtoum method returns
// a string...
->integer($this->testedInstance->add(1,2))
// ... and that this string is the one we want,
// namely 'Hi atoum !'
->isEqualTo(3)
;
}
public function test6 ()
{
$this
// creation of a new instance of the tested class
->given($this->newTestedInstance)
->then
// we test that the getHiAtoum method returns
// a string...
->integer($this->testedInstance->add(1,2))
// ... and that this string is the one we want,
// namely 'Hi atoum !'
->isEqualTo(4)
;
}
public function testSkipped() {
$this->skip('This test was skipped');
}
}