+2

Tool testing guide for new Python developer

Lời mở đầu

Hello everyone, long time no see, nay tôi sẽ trở lại với bài dịch liên quan đến một bước crucial trong software development. Đó là 👉️ Testing. Mỗi ngôn ngữ lập trình đều có một số lượng lớn công cụ dùng để kiểm thử phần code. Và Python cũng thế. Tuy nhiên với thư viện Pandas thì việc này không thực sự phổ biến. Trong bài viết, tác giả cũng có đề cập hai nguyên nhân vì Pandas có thể khó hơn trong việc test các cú pháp code Python thông thường hoặc nó thường được sử dụng bởi các chuyên gia hơn các lập trình viên.

Tuy nhiên, testing là một giai đoạn trong software development do đó không nên việc biết một số tools để làm dễ dàng quá trình này.

Okay, và bài dịch ngày hôm nay về một chủ đề khá mới bắt đầu thoi nào!!!

Nội dung

Using Pytest

Pytest là một tool rất phổ biến và đơn giản để testing code. Đối với một số tools khác, nó yêu cầu cần định nghĩa các class cho mỗi lượt testing, điều này vô tình make this a bit more cumbersome. Với Pytest nó đơn giản và dễ dàng hơn.

Install Pytest

Để sử dụng nó, chúng ta có thể dùng câu lệnh:

pip install pytest

Các bạn có thể tìm hiểu kỹ hơn về nó tại 👉️ Pytest

Ví dụ với Pytest

Ví dụ tôi muốn kiểm thử đoạn code để tính tổng của hai số dưới đây:

# operations.py
def sum_a_and_b(a, b):
  return a + b

Tôi viết đoạn code vào file <name>.py ( ví dụ như operations.py...).

Để testing đoạn code trên, tôi thực hiện một số bước dưới đây:

  1. Viết đoạn code trên vào một file .py ( ví dụ như operations.py)'

  2. Tạo một file .py khác để testing đoạn code trên (ví dụ như test_operations.py)

  3. Viết đoạn code để testing hàm sum_a_and_b(a, b):

    • Import hàm tính tổng từ file operations(a, b)

      from operations import sum_a_and_b as sum
      
    • Viết một function để thực hiện testing hàm tính tổng:

         def test_sum():
               result = sum_a_and_b(1, 2)
      
               assert result == 3
      
    • Chạy file testing với terminal:

      • cd vào thư mục chứa file testing
      • Chạy code trong file testing với type pytest
    • Check kết quả

Minh họa kết quả thực thi thành công.

👉️👉️👉️ Mọi người có thể tìm hiểu kỹ hơn về một số điểm mạnh của pytest tại khóa học này Python Automatic Pytest

Cách viết một bài test chuẩn

Dựa theo ý kiến của tác giả bài viết

Beyond the Happy Path

Phiên bản test Happy path là phiên bản testing version 1 thường là phiên bản chúng ta expect đầu tiên. Đây là trường hợp đơn giản nhất và là vấn đề chúng ta cần hàm giải quyết đầu tiên. Tuy nhiên chúng ta cũng cần có những trường hợp gọi là the edge cases để đánh giá được function 100%.

Minh họa cho trường hợp vừa pass vừa fail

Testing Principles

For unit tests, it’s a good rule of thumb to remember that tests should always follow the common “arrange/act/assert” structure.

Các bước gồm:

  • arrange : những thứ cần để testing như tạo data cần thiết, chuẩn bị in-memory database hay mocking API call...
  • act: hàm hoặc phương thức để gọi nó
  • assert: expected output.

Minh họa đối với hàm tính tổng ở ví dụ trên

‼️ Lưu ý rằng, mọi người nếu muốn unit test mang tính tương tác với user thì có thể sử dụng ba type sau: given/when/then

  • Given: những gì bạn cần để chạy chương trình test
  • When: có tính tương tác
  • Then: expected outcome

Take Your Time Naming Everything Correctly

Tài liệu tham khảo:

Lời cảm ơn

Trước tiên, tôi xin cảm ơn anh Eduardo Motta de Morae - tác giả bài viết. Cảm ơn mọi người đã đọc phần dịch chia sẻ của tôi. Cảm ơn rất nhiều.

Hy vọng mọi người sẽ tổng hợp và đóng góp tại email bên dưới.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí