Menerapkan test marker

Pengantar Pengujian di Python

Alexander Levin

Data Scientist

Gambaran test marker

  • Use case 1: lewati test jika kondisi terpenuhi
  • Use case 2: test ini diperkirakan gagal

  • Test marker - tag pada test di library pytest

  • Memungkinkan Anda menetapkan perilaku untuk test tertentu dengan menandainya
Pengantar Pengujian di Python

Sintaks marker

  • Decorator - pola desain di Python yang memungkinkan penambahan fungsionalitas baru ke objek tanpa mengubah strukturnya
  • Sintaks test marker dimulai dengan decorator @pytest.mark:
import pytest

def get_length(string):
    return len(string)

# Sintaks test marker
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Pengantar Pengujian di Python

Marker skip dan skipif

  • Gunakan @pytest.mark.skip - saat Anda ingin test dilewati dalam kondisi apa pun
  • Gunakan @pytest.mark.skipif - jika ingin test dilewati jika kondisi tertentu True
Pengantar Pengujian di Python

Contoh marker skip

  • Gunakan @pytest.mark.skip - saat Anda ingin test dilewati tanpa batas.
import pytest
def get_length(string):
    return len(string)

# Contoh marker skip
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Pengantar Pengujian di Python

Contoh skip: output

  • Output dengan test yang dilewati:

contoh pytest.mark.skip

Pengantar Pengujian di Python

Contoh marker skipif

  • Gunakan @pytest.mark.skipif - saat ingin melewati test jika kondisinya True.
import pytest
def get_length(string):
    return len(string)

# Contoh marker skipif
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Pengantar Pengujian di Python

Contoh skipif: output

  • Output dari test yang dilewati bersyarat:

contoh pytest.mark.skipif

Pengantar Pengujian di Python

Marker xfail

  • Gunakan @pytest.mark.xfail - saat Anda mengharapkan test gagal
import pytest

def gen_sequence(n):
    return list(range(1, n+1))

# Contoh marker xfail
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Pengantar Pengujian di Python

Marker xfail: output

  • Output dari test yang diharapkan gagal:

contoh pytest.mark.xfail

Pengantar Pengujian di Python

Ringkasan

Test marker:

  • Atribut pada test di library pytest
  • Untuk menentukan perilaku test tertentu
  • Sintaks dimulai dengan @pytest.mark.name_of_the_marker
  • Implementasi bawaan di pytest:
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Pengantar Pengujian di Python

Ayo berlatih!

Pengantar Pengujian di Python

Preparing Video For Download...