2015-03-04 4 views
0

Я новичок в тестировании модулей php, каковы действительные тестовые примеры для функции ниже.Тестовые примеры для проверки функции phpunit

protected function validateParams($graph, $start, $destination) 
{ 
    if (!is_object($graph)) { 

     throw new \InvalidArgumentException('Graph param should be an object !'); 
    } 

    if (empty($start)) { 

     throw new \InvalidArgumentException('Start param is empty !'); 
    } 

    if (empty($destination)) { 

     throw new \InvalidArgumentException('Graph param is empty !'); 
    } 

    return true; 
} 
+1

Вы спрашиваете, как создавать тестовые примеры вообще или как их реализовать на PHP? –

+0

Я задаю подходящие тестовые примеры, которые нельзя делать в PHP – Shaolin

ответ

1

Во-первых, проверьте, что при переходе правильные аргументы метода, он возвращает true.

public function testParamsValidation(); 

Затем проверьте, что InvalidArgumentException отбрасывается, когда какой-либо из аргументов пуст. Обратите внимание, что у вас должно быть 3 теста, по одному для каждого из аргументов. В каждом тесте вы передаете только один пустой аргумент. Вероятно, вы хотите, чтобы каждый из этих тестов выполнялся несколько раз с различными значениями аргументов (например, null, false, scalars и т. Д.). Используйте для этого dataProviders.

public function testInvalidArgumentExceptionIsThrownWhenGraphIsNotAnObject(; 

public function testInvalidArgumentExceptionIsThrownWhenStartIsEmpty(); 

public function testInvalidArgumentExceptionIsThrownWhenDestinationIsEmpty(); 

Замечание: вы, вероятно, захотите указать класс объектов в определении метода. Объект $ graph должен иметь определенный класс или реализовывать определенный интерфейс?

+0

Это определенный класс – Shaolin

+0

может также привести пример? – Shaolin

+0

Изучите документы PHPUnit и попробуйте протестировать тестовые примеры. По крайней мере первый из них тривиален. Если вы застряли, отправьте еще один вопрос, и мы поможем :-) – gontrollez

Смежные вопросы