majú takéto testy zmysel ? rubrika: Programování: PHP

5 ferkomatus
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
16 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:

Rychlé přihlášení přes sociální sítě:

Nebo se přihlaste jménem a heslem:

Zadejte prosím svou e-mailovou adresu.
Zadejte své heslo.