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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: написание тестов на phpunit
asker
Отправлено: 11 Июня, 2021 - 20:12:44
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




есть вот такой условный код на 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 ? как в тестах проверить правильно ли обрабатываются данные в циклах ?
 
 Top
don.bidon
Отправлено: 11 Июня, 2021 - 22:38:49
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2019  


Помог: 2 раз(а)




Общее? Читайте документацию по 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.  
 
 Top
asker
Отправлено: 14 Июня, 2021 - 09:16:51
Post Id


Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Дек. 2012  


Помог: 0 раз(а)




Дописал пока код и по возможности прокомментируйте

(Отредактировано автором: 14 Июня, 2021 - 14:57:18)

 
 Top
don.bidon
Отправлено: 14 Июня, 2021 - 12:21:31
Post Id


Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2019  


Помог: 2 раз(а)




Oh My Buddha, да не собираюсь я Ваш код анализировать, го документацию читать и подсматривать у лучших )
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB