Pengantar fixtures

Pengantar Pengujian di Python

Alexander Levin

Data Scientist

Apa itu fixture

  • Fixture: lingkungan siap pakai untuk menjalankan tes
  • Fixture setup: proses menyiapkan lingkungan dan resource yang dibutuhkan satu atau lebih tes

Bayangkan persiapan piknik:

  1. Undang teman dan siapkan makanan (itulah tugas fixture)
  2. Bersenang-senang!
  3. Bereskan
Pengantar Pengujian di Python

Mengapa perlu fixture

Fixtures membantu:

  • Mempermudah setup tes
  • Mengisolasi tes dari persiapan lingkungan
  • Membuat kode fixture dapat digunakan ulang
Pengantar Pengujian di Python

Contoh fixture: ringkas

Misalkan kita punya:

  • variabel list Python bernama data
  • data = [0, 1, 1, 2, 3, 5, 8, 13, 21]

Dan kita ingin menguji bahwa:

  • Berisi 9 elemen
  • Berisi elemen 5 dan 21
Pengantar Pengujian di Python

Contoh fixture: kode

import pytest

# Fixture decorator
@pytest.fixture
# Fixture for data initialization
def data():
    return [0, 1, 1, 2, 3, 5, 8, 13, 21]

def test_list(data):
    assert len(data) == 9
    assert 5 in data
    assert 21 in data
Pengantar Pengujian di Python

Contoh fixture: keluaran

Keluaran contoh: output dari contoh fixture

Pengantar Pengujian di Python

Cara menggunakan fixtures

Untuk memakai fixture, lakukan hal berikut:

  1. Siapkan perangkat lunak dan tes
  2. Temukan "persiapan lingkungan"
  3. Buat fixture:
    • Deklarasikan dekorator @pytest.fixture
    • Implementasikan fungsi fixture
  4. Gunakan fixture yang dibuat:
    • Berikan nama fixture ke fungsi tes
    • Jalankan tes!
Pengantar Pengujian di Python

Ringkasan

Kita telah mempelajari fixtures pengujian:

  • Fixture: lingkungan siap pakai untuk menjalankan tes
  • Kita memakai fixtures agar setup tes lebih mudah dan terpisah dari fungsi tes
  • Contoh sederhana: menyiapkan list Python
  • Definisikan fixture pytest dengan mendeklarasikan @pytest.fixture
    • diikuti fungsi fixture
  • Nama fixture dipakai di tes sebagai variabel
Pengantar Pengujian di Python

Ayo berlatih!

Pengantar Pengujian di Python

Preparing Video For Download...