Тестирование простой функции в модели с помощью Mockery - PullRequest
0 голосов
/ 20 апреля 2019

Я совершенно новичок в Mockery, который встроен в Laravel. Мне больно проверять простую функцию модели, которая увеличивает порцию ссылки, независимо от того, какое значение я передаю для проверки результата, и это нормально, даже если он потерпит неудачу. Я думаю, что где-то допустил ошибку или не понимаю документацию. Спасибо за вашу помощь.

Вот простая функция для проверки

public function incrementRefFormation(string $value):string
{
    $split = str_split($value);
    $group1 = '';

    for ($i=0;$i<11;$i++) {
        $group1 .= $split[$i];
    }

    $group2 = $split[11].$split[12];
    $group2 = (int)$group2;
    $group2++;

    return $group1.$group2.$split[13];
}

Вот тест, который должен провалиться

public function testIncrementRefFormation()
{
    //$testValue = '1 332 8100 20S';
    $testValue = '123456';
    $expectedValue = '1332810021S';


    $mock = Mockery::mock('App\Models\Formation');

    $mock->shouldReceive(['incrementRefFormation' => $expectedValue])
            ->once();

    var_dump($mock->incrementRefFormation($testValue));
}

Большое спасибо!

1 Ответ

0 голосов
/ 20 апреля 2019

Насмешка используется для создания «насмешек», которые являются тупыми объектами, делающими только то, что вы им скажете (например, метод x вернет y, если он снабжен параметром z).Обычно он используется для проверки зависимостей класса, который вы хотите протестировать.В вашем случае вам это, вероятно, не понадобится.

Так что ваш тест, вероятно, будет выглядеть примерно так

$formation = new App\Models\Formation();
$actualvalue = $formation->incrementRefFormation($testValue);
$this->assertEquals($expectedValue, $actualvalue);
...