@vrazbros

Какие тесты можно написать на функцинал по созданию обьекта и вызов методов?

есть вот такой условный код на php:
$player1 = new Player('Vasa', new SimpleChoise());
$player2 = new Player('Peta', new RandomChoise());

$game = new Game(new StoneScissorPaperGameStrategy(), $player1, $player2);

$result = [];

for ($i = 0; $i < 10; $i++) {
    $winnerName = $game->run();
    if(isset($result[$winnerName])) {
        $result[$winnerName]++;
    } else {
        $result[$winnerName] = 1;
    }
}

foreach ($result as $player => $value)
{
    echo sprintf("\nPlayer %s wins %s times", $player, $value);
}


сколько и какие тесты вы бы написали на такой код ? и хорошо ли он написан если можно оценить ?
я смог придумать только код на проверку типа возврата для $game->run() но как проверить в тестах что создался обьект типа плеер $player1 = new Player ? как в тестах проверить правильно ли обрабатываются данные в циклах ?
  • Вопрос задан
  • 52 просмотра
Пригласить эксперта
Ответы на вопрос 1
@oxidmod
1. Вангую, что внутри RandomChoise используется random, а значит интеграционные тесты уже не получатся
2. Я бы написал отдельные юнит тесты на классы SimpleChoise, RandomChoise, StoneScissorPaperGameStrategy, Game. Ну а остальной код смысла особо тестить и нет, хотя можно если замокать потому Game, чтоб оно возвращало заранее известный результат. Тогда можно еще проверить, что весь остальной код будет правильно формировать результат
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы