Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Какие тесты можно написать на функцинал по созданию обьекта и вызов методов ?
Форумы портала PHP.SU » » Вопросы новичков » Какие тесты можно написать на функцинал по созданию обьекта и вызов методов ?

Страниц (1): [1]
 

1. asker - 11 Июня, 2021 - 20:12:44 - перейти к сообщению
есть вот такой условный код на php:

PHP:
скопировать код в буфер обмена
  1. $player1 = new Player('Vasa', new SimpleChoise());
  2. $player2 = new Player('Peta', new RandomChoise());
  3.  
  4. $game = new Game(new StoneScissorPaperGameStrategy(), $player1, $player2);
  5.  
  6. $result = [];
  7.  
  8. for ($i = 0; $i < 10; $i++) {
  9.     $winnerName = $game->run();
  10.     if(isset($result[$winnerName])) {
  11.         $result[$winnerName]++;
  12.     } else {
  13.         $result[$winnerName] = 1;
  14.     }
  15. }
  16.  
  17. foreach ($result as $player => $value)
  18. {
  19.     echo sprintf("\nPlayer %s wins %s times", $player, $value);
  20. }


сколько и какие тесты вы бы написали на такой код ? и хорошо ли он написан если можно оценить ?
я смог придумать только код на проверку типа возврата для $game->run() но как проверить в тестах что создался обьект типа плеер $player1 = new Player ? как в тестах проверить правильно ли обрабатываются данные в циклах ?
2. don.bidon - 11 Июня, 2021 - 22:38:49 - перейти к сообщению
Общее? Читайте документацию по PHPUnit, посмотрите, как пишут тесты другие.
asker пишет:
но как проверить в тестах что создался обьект типа плеер $player1 = new Player


PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. declare(strict_types=1);
  3.  
  4. namespace Foo;
  5.  
  6. use PHPUnit\Framework\TestCase;
  7.  
  8. class TestCaseBar extends TestCase
  9. {
  10.     public function testBlah(): void
  11.     {
  12.         $player = new Player('Vasa', new SimpleChoise());
  13.         self::assertTrue($player instanceof Player, "Error message");
  14.     }
  15. }
  16.  
3. asker - 14 Июня, 2021 - 09:16:51 - перейти к сообщению
Дописал пока код и по возможности прокомментируйте
4. don.bidon - 14 Июня, 2021 - 12:21:31 - перейти к сообщению
Oh My Buddha, да не собираюсь я Ваш код анализировать, го документацию читать и подсматривать у лучших )

 

Powered by ExBB FM 1.0 RC1