majú takéto testy zmysel ? rubrika: Programování: PHP
3
pooler
položil/-a 25.12.2018
na stránke https://dev.to/damnjan/when-php-framework-sucks-series-business-logic-fr... som si všimol konkrétny test:
namespace ExampleNamespace; class PostsFromDatabase { /** @var ManagerRegistry**/ private $doctrine; public function getDoctrine() { return $this->doctrine; } public function __construct(ManagerRegistry $doctrine) { $this->doctrine = $doctrine; } public function getLatest() { $posts = $this->getDoctrine() ->getRepository(Post::class) ->findLatest(); return $posts; } }
namespace ExampleNamespace; use Doctrine\Common\Persistence\ManagerRegistry; use Doctrine\ORM\EntityRepository; class PostsFromDatabaseTest extends \PHPUnit_Framework_TestCase { /** * @covers \ExampleNamespace\PostsFromDatabase */ public function testGetLatestShouldReturnSameCollectionAsFindLatestReturns() { $managerRegistryMock = $this->getMockBuilder(ManagerRegistry::class) ->disableOriginalConstructor() ->getMock(); $repository = $this->getMockBuilder(EntityRepository::class) ->disableOriginalConstructor() ->getMock(); $managerRegistryMock ->expects($this->once()) ->method('getRepository') ->with(Post::class) ->willReturn($repository); $repository ->expects($this->once()) ->method('findLatest') ->willReturn(['post1', 'post2']); $postsFromDatabase = new PostsFromDatabase($managerRegistryMock); $latestPosts = $postsFromDatabase->getLatest(); $this->assertEquals(['post1', 'post2'], $latestPosts); } }
vie mi prosím niekto vysvetliť či má takýto test zmysel ? ak áno, prečo ?
mne osobne to pripadá tak, že takéto testovanie nemá zmysel, že sa tým len "upevní"/"zafixuje" nejaký kód
v danom teste totiž nevidím žiadnu logiku, ktorá by sa mala testovať
odkaz
7
harrison314
odpověděl/-a 26.12.2018
upravil/-a 26.12.2018
V tomto pripade by som povedal, ze taketo testy mozu sluzit na:
- Kontrola syntaxe
- Nahananie Code Coverage
- Reverzne testy
Pro zobrazení všech 2 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem: