Как проверить MissingParameterException в CakePHP?

Я пробовал все остальные посты, которые были опубликованы в stackoverflow, и я не могу понять это. Так что это означает, что я должен спросить.

    public function bootstrapRadioButtons(
$name,
$options,
$value = '',
$divClass = '',
$label = array('class' => 'control-label')
) {
if (!isset($name) || !isset($options)) {
throw new MissingParameterException(__d('cockpit', 'Variable name must be set.'));
} else {

Может ли кто-нибудь написать тест, где проверяется это MissingParameterException? Есть специальный способ проверить это с помощью CakePHP?

Это то, что я до сих пор:

    /**
* @expectException App\Exception\MissingParameterException
*/
public function testNameAndOptionsAreEmpty()
{
$this->CommonHelper->bootstrapRadioButtons('', '');
}

Вот что я использую в самом классе:

use App \ Exception \ MissingParameterException;

И это именно то, откуда это исключение MissingParameterException, но этот тест по-прежнему возвращает ошибку.

    /**
* setUp method
*
* @return void
*/
public function setUp()
{
parent::setUp();
$view = new View();
$this->CommonHelper = new CommonHelper($view);
}

0

Решение

Условие для проверки того, что! Isset ($ name) и! Isset ($ options) является избыточным, поскольку для этой функции требуются параметры $ name и $ options, и php сгенерирует исключение перед выполнением вашего кода. Если Вы хотите проверить, что они не пусты, используйте этот код:

if (empty($name) || empty($options)) {
throw new MissingParameterException('Variable name must be set.');
}

И в этом случае тест будет выглядеть так:

/**
* @expectedException \Full\Namespace\To\MissingParameterException
*/
public function testNameNadOptionsAreEmpty()
{
$class = new \Your\Class();
$class->bootstrapRadioButtons('', '');
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector