Аргерих Л. О языке РНР. Часть 2. Страница 8


class Stack_Tester extends TestCase {

Создадим столько объектов стека, сколько есть контрольных примеров. Мы планируем протестировать методы класса Stack:

var $stack1; var $stack2;

var $stack3; var $stack4;

Вот метод конструктора для этого класса. Вызываем конструктор роди­тельского класса с тем же аргументом, что и у этого конструктора:

function Stack Tester($method) $this->TestCase($method);

I

Это метод инициализации, который в итоге вызовет родительский класс. В нем мы создаем экземпляры всех объявленных ранее объектов:

function setUpQ

i

$this->stack1 = newStack(); $this->stack2 = new Stack(); $this->stack3 = new Stack(); $this->stack4 = new Stack();

>

Вот метод для тестирования метода push() в классе Stack. Мы вызываем ме­тод push(), а затем сразу сравниваем помещенное на стек значение с резуль­татом метода peek. Сравнение выполняется с помощью метода assertEquals(), унаследованного от родительского класса. Этот метод сравнивает значения первых своих двух аргументов и выводит в качестве сообщения об ошибке третий аргумент:

function testPushQ {

$this->stackt->push(27); v.

$this->assertEquals(27, $this->stackl->peek(), "push() method failed test");

Контрольный пример для метода pop() аналогичен. Помещаем на стек значе­ние 108, а затем выполняем операцию pop над стеком. Результат операции pop сравнивается с числом 108 посредством метода assertEquals():

function testPop() { "

$this->stack2->push(108); $ret = $this->stack2->pop();

$this->assertEquals(l08, $ret, "pop() method failed");

}

Контрольный пример для метода Помещаем на стек число запо­

минаем значение, возвращенное операцией peek, и выполняем еще одну опе­рацию peek. Сравниваем значения, возвращенные двумя операциями peek, между собой и значение, возвращенное последней операцией peek, с 1921, ис­пользуя метод assert(), унаследованный от родительского класса TestCase. Метод assert() указывает на сбой, если значение переданного ему в качестве аргумента выражения отлично от true:

function testPeek() {

$this->stack3->push(192l);

$ret = $this->stack3->peek();

$ret2 = $this->stack3->peek();

$this->assert( $ret == $ret2 && $ret2 == 1921 );

I

Теперь мы применяем к стеку push, а затем выталкиваем то же значение с по­мощью pop. Поскольку с объектом stack4 не проводились другие операции, вы­зов метода isEmpty() должен возвращать 1. Так ли это, мы проверим с помо­щью метода asse rt ():




Чтобы восстановить работоспособность компьютера следует обращаться к специалистам. Так как ремонт компьютеров необходимо выполнять только в специализированных компаниях, которые дают гарантию на ремонт.