Fixture autouse

Pengantar Pengujian di Python

Alexander Levin

Data Scientist

Argumen autouse

  • Argumen boolean opsional pada fixture
  • Dapat diteruskan ke dekorator fixture
  • Dengan autouse=True, fungsi fixture berjalan tanpa perlu diminta
  • Membantu mengurangi pemanggilan fixture yang berlebihan
Pengantar Pengujian di Python

Kapan digunakan

Gunakan saat perlu menerapkan penyiapan atau modifikasi lingkungan untuk semua pengujian.

Misalnya, untuk memastikan semua pengujian:

  • Memiliki data yang sama
  • Memiliki koneksi yang sama (data, API, dll.)
  • Memiliki konfigurasi lingkungan yang sama
  • Memiliki monitoring, logging, atau profiling

Semua kasus ini sebaiknya ditangani dengan argumen "autouse".

Pengantar Pengujian di Python

Contoh autouse

Contoh fixture "autouse":

import pytest
import pandas as pd

# Fixture autouse
@pytest.fixture(autouse=True)
def set_pd_options():
    pd.set_option('display.max_columns', 5000)

# Fungsi uji
def test_pd_options():
    assert pd.get_option('display.max_columns') == 5000
Pengantar Pengujian di Python

Contoh autouse yang salah

Contoh "autouse" yang salah:

import pytest
import pandas as pd

# Fixture autouse yang salah
@pytest.fixture(autouse=True)
def wrong_fixture():
    return [1,2,3,4,5]

# Fungsi uji
def test_type():
    assert type(wrong_fixture) == list

Contoh fixture yang benar:

import pytest
import pandas as pd

# Fixture autouse yang salah
@pytest.fixture
def correct_fixture():
    return [1,2,3,4,5]

# Fungsi uji
def test_type(correct_fixture):
    assert type(correct_fixture) == list
Pengantar Pengujian di Python

Contoh autouse: keluaran

Keluaran contoh:

contoh keluaran autouse

Pengantar Pengujian di Python

Ringkasan

  • Definisi autouse: Argumen boolean opsional pada dekorator fixture
  • Penggunaan: @pytest.fixture(autouse=True)
  • Keuntungan: Mengurangi pemanggilan fixture yang berulang sehingga kode lebih sederhana
  • Fitur: Dengan autouse=True, fungsi fixture berjalan tanpa perlu diminta
  • Kapan digunakan: saat perlu menyiapkan atau memodifikasi lingkungan
  • Contoh kasus:
    • Membaca dan menyiapkan data untuk semua pengujian
    • Mengonfigurasi koneksi dan parameter lingkungan
    • Menerapkan monitor, logger, atau profiler
Pengantar Pengujian di Python

Ayo berlatih!

Pengantar Pengujian di Python

Preparing Video For Download...