Áp dụng test marker

Nhập môn Kiểm thử trong Python

Alexander Levin

Data Scientist

Tổng quan về test marker

  • Trường hợp 1: bỏ qua test nếu thỏa điều kiện
  • Trường hợp 2: test này dự kiến sẽ fail

  • Test marker: thẻ (marker) của test trong thư viện pytest

  • Cho phép chỉ định hành vi cho từng test bằng cách gắn thẻ (đánh dấu)
Nhập môn Kiểm thử trong Python

Cú pháp marker

  • Decorator: mẫu thiết kế trong Python cho phép thêm chức năng mới vào đối tượng hiện có mà không sửa cấu trúc
  • Cú pháp test marker bắt đầu với decorator @pytest.mark:
import pytest

def get_length(string):
    return len(string)

# Cú pháp test marker
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Nhập môn Kiểm thử trong Python

Marker skip và skipif

  • Dùng @pytest.mark.skip khi muốn bỏ qua test trong mọi trường hợp
  • Dùng @pytest.mark.skipif nếu muốn bỏ qua test khi điều kiện cho trước là True
Nhập môn Kiểm thử trong Python

Ví dụ skip marker

  • Dùng @pytest.mark.skip khi muốn bỏ qua test vô thời hạn.
import pytest
def get_length(string):
    return len(string)

# Ví dụ skip marker
@pytest.mark.skip
def test_get_len():
    assert get_length('123') == 3
Nhập môn Kiểm thử trong Python

Ví dụ skip marker: output

  • Kết quả với một test bị bỏ qua:

ví dụ pytest.mark.skip

Nhập môn Kiểm thử trong Python

Ví dụ skipif marker

  • Dùng @pytest.mark.skipif khi muốn bỏ qua test nếu điều kiện cho trước là True.
import pytest
def get_length(string):
    return len(string)

# Ví dụ skipif marker
@pytest.mark.skipif('2 * 2 == 5')
def test_get_len():
    assert get_length('abc') == 3
Nhập môn Kiểm thử trong Python

Ví dụ skipif marker: output

  • Kết quả của một test bị bỏ qua có điều kiện:

ví dụ pytest.mark.skipif

Nhập môn Kiểm thử trong Python

Xfail marker

  • Dùng @pytest.mark.xfail khi kỳ vọng test sẽ fail
import pytest

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

# Ví dụ xfail marker
@pytest.mark.xfail
def test_gen_seq():
    assert gen_sequence(-1)
Nhập môn Kiểm thử trong Python

Xfail marker: output

  • Kết quả của một test được kỳ vọng là fail:

ví dụ pytest.mark.xfail

Nhập môn Kiểm thử trong Python

Tóm tắt

Test marker:

  • Là thuộc tính của test trong thư viện pytest
  • Dùng để chỉ định hành vi cho từng test cụ thể
  • Cú pháp bắt đầu với @pytest.mark.name_of_the_marker
  • Các marker có sẵn trong pytest:
    • @pytest.mark.xfail
    • @pytest.mark.skip
    • @pytest.mark.skipif
Nhập môn Kiểm thử trong Python

Hãy luyện tập!

Nhập môn Kiểm thử trong Python

Preparing Video For Download...