Chủ Nhật, 27 tháng 9, 2015

[Python] Unittest

Unitest là gì?

Unittest là một framework dùng cho tính năng test các code case trong python (python init testing framework).

Unittest module cung cấp các bases class, giúp coder định nghĩa các tests dễ dàng.

Một số concepts cơ bản trong unitest:

1. Test fixture: một test fixture thực hiện sự chuẩn bị những vấn đề cần thiết trước khi chạy một hay nhiều tests. Ví dụ: tạo thư mục hay database phục vụ các test cases.
Ngoài ra, Test Fixture còn sử dụng để thực hiện một số hoạt động sau khi test kết thúc như xóa object được tạo trong quá trình test.

Một số Class quan trọng:

+ setUp(): là method được gọi để prepare cho test fixture, được chạy ngay trước khi các test method được gọi.
+ tearDown(): Chỉ được chạy khi setUp() chạy thành công. Được gọi ngay sau khi các test methods chạy xong (dù fail hay success)
+ setUpClass(): được gọi để prepare trước khi một class test được gọi với class  đó được truyền như một argument.
+ tearDownClass() chạy ngay sau khi class test chạy xong với class  đó được truyền như một argument.
Thông thường, class này chạy với mục đích clean các resource được tạo ra trong quá trình test.

2. Test case: test các trường hợp cụ thể. Ví dụ test output của một function với đầu vào biết trước. Đây là mức độ đơn giản và nhỏ nhất, dễ nhâts khi sử dụng unittest.
A testcase được tạo ra nhờ unittest.TestCase

3. Test suite: là tập hợp nhiều test case được run cùng nhau.

4. Test tunner: là một object CHỈ CÓ run() method nhận ác testcase hoặc testsuite như các params và đồng thời trả về một output object đến người dùng.

Các test functions thường được đặt tên bắt đầu bằng "test" (ví dụ test_string) theo một quy ước chung.



1 nhận xét:

  1. rất nhiều lỗi chính tả, từ tên bài viết:
    - unitest => unittest
    - python init testing framework => python unit
    - bases class => base classes
    Trong unittest còn có : setUpModule và tearDownModule rất quan trọng.
    Test tunner => test runner

    Trả lờiXóa