Testy jednostkowe czy funkcjonalne dla API

0

Cześć, uczę się programować w Symfony i tworze proste API.
Aktualnie posiadam jeden Controller CategoryController w którym posiadam pięć metod: GET,GET,POST,PUT,DELETE.
Chciałbym się dowiedzieć, czy dla takich metod w API pisze się testy jednostkowe, czy Od razu funkcjonalne.
Jeśli są pisane testy jednostkowe, czy mógłbym prosić o jakiś z przykładów, ponieważ nie wiem od czego zacząć.
Mam napisane testy, poniżej zamieszczam kod. Według tego co wyczytałem w internecie są to już testy funkcjonalne a nie jednostkowe, ponieważ testuje już konkretne funkcjonalności na działającej aplikacji.

   public function testGetCategoriesAction(): void
    {
        $client = static::createClient();
        $client->request('GET', '/categories');

        $this->assertSame(200, $client->getResponse()->getStatusCode());

        $this->assertResponseHeaderSame('Content-Type', 'application/json; charset=UTF8');
    }

    public function testGetCategoryAction(): void
    {
        $client = static::createClient();
        $client->request('GET', '/categories/1');

        $this->assertSame(200, $client->getResponse()->getStatusCode());

        $this->assertResponseHeaderSame('Content-Type', 'application/json; charset=UTF8');
    }

    public function testPostCategoriesAction(): void
    {
        $postData = [
            'name' => 'Test Category',
            'description' => 'Test category description',
        ];

        $client = static::createClient();
        $client->request('POST', '/categories',[],[],['CONTENT_TYPE' => 'application/json'],
            json_encode($postData));

        $this->assertSame(201, $client->getResponse()->getStatusCode());
    }
0

Za krótki kod by pisać jednostkowe. Jak czasami dla jednego endpointu będziesz musiał napisać cały moduł to wtedy sam poczujesz, że bez testowania konkretnych, ale często tylko wybranych metod się nie da bo za dużo tego jest.

0

@mr_jaro: Dzięki za odpowiedź, rozumiem jak najbardziej. Robie to w celu nauczenia się nowych rzeczy między innymi pisania testów. Czy mimo wszystko mógłbyś wskazać jak powinien wyglądać unit test dla metody GET i POST z mockowaniem bazy itp. Szukałem w internecie przykładów ale ciężko jest mi tak znaleźć w którym było by po kolei ukazane jak zamockowac bazę i jak przetestować daną metode.

0

Zanim napiszesz aplikacje to najpierw piszesz do niej testy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1