· 2 просмотров · 1 мин чтения

Testirovanie veb-prilozheniy: Unit, Integration, E2E, TDD. PHPUnit, Jest, Cypress, Pest. Piramida testirovaniya, best practices.

Поделиться:

Testirovanie veb-prilozheniy: vidy i podhody

Avtomatizirovannoe testirovanie — osnova nadyozhnogo koda. Razberyom vidy testov i instrumenty.

Piramida testirovaniya

  • Unit (70%): Testirovanie otdelnyh funktsiy/klassov
  • Integration (20%): Testirovanie vzaimodeystviya komponentov
  • E2E (10%): Testirovanie polnogo stsenariya polzovatelya

Unit testy

PHPUnit dlya Laravel:

class CalculatorTest extends TestCase{    public function test_addition()    {        $calculator = new Calculator();        $this->assertEquals(4, $calculator->add(2, 2));    }}

Jest dlya JavaScript:

test('adds 1 + 2 to equal 3', () => {  expect(sum(1, 2)).toBe(3);});

Integration testy

Testirovanie s BD i vneshnimi servisami:

public function test_user_can_create_post(){    $user = User::factory()->create();        $response = $this->actingAs($user)        ->postJson('/api/posts', [            'title' => 'Test',            'body' => 'Content'        ]);        $response->assertStatus(201);    $this->assertDatabaseHas('posts', ['title' => 'Test']);}

E2E testy

Cypress dlya frontenda:

describe('Login', () => {  it('successfully logs in', () => {    cy.visit('/login');    cy.get('[name=email]').type('user@example.com');    cy.get('[name=password]').type('password');    cy.get('button[type=submit]').click();    cy.url().should('include', '/dashboard');  });});

TDD (Test Driven Development)

  1. Napisat padayuschiy test
  2. Napisat minimalnyy kod dlya prohozhdeniya
  3. Refaktoring

APS gotova pomoch s vashim proektom

Vnedryaem avtomatizirovannoe testirovanie v vashi proekty. Zakazhite nastroyku — povysim kachestvo koda.

testirovanie Unit testy Integration E2E PHPUnit Jest Cypress TDD Pest

АПС готова помочь с вашим проектом

Нужна разработка, консультация или аудит? Свяжитесь с нами и получите бесплатную оценку проекта.

Комментарии (0)

Пока нет комментариев. Будьте первым!