Skip to content
dfitiskin edited this page Sep 14, 2010 · 5 revisions

Класс Moq я сделал для того чтобы исползовать экземпляры этого класса как мок-объекты в юнит-тестах. Пока он умеет:

1) Задавать значение которое должен вернуть метод при вызове:

$manager = new Moq();
$manager->addMethod(
    'getContent',
    'this is file content'
);
$file = $manager->object;
echo $file->getContent(); 
// выведет «this is file content»

2) Запоминать полученные аргументы:

$manager = new Moq();
$db = $manager->object;
$db->query('SELECT * FROM table');
$args = $manager->getArguments('query', 0); // где 0 означает первый вызов
echo $args[0]; // где 0 — это порядковый номер аргумента
// выведет «SELECT * FROM table» 
или
$db = new Moq();
$db->query('SELECT * FROM table');
echo $manager->getArgument('query', 0, 0); // (где 0, 0 означает первый аргумент из первого вызовы)
// выведет «SELECT * FROM table»

3) Считать сколько раз был вызван метод:

$manager = new Moq();
$sender = $manager->object;
for ($i = 0; $i < 4; $i++) $sender->send($i);
echo $manager->getCallCount('send'); 
// выведет «4»

Clone this wiki locally