Thông báo: Download 4 khóa học Python từ cơ bản đến nâng cao tại đây.
Phương thức assertIsNone() trong Python
Trong kiểm thử phần mềm, việc đảm bảo rằng các giá trị và trạng thái của biến được xác định chính xác là vô cùng quan trọng. Python cung cấp một loạt các phương thức kiểm thử trong mô-đun unittest
để hỗ trợ các nhà phát triển trong việc này. Một trong số đó là phương thức assertIsNone()
, giúp kiểm tra xem một biến có giá trị None
hay không. Trong bài viết này, mình sẽ tìm hiểu cách sử dụng phương thức assertIsNone()
để nâng cao hiệu quả kiểm thử và đảm bảo tính chính xác của mã nguồn.
Giới thiệu về phương thức assertIsNone()
của Python
Phương thức assertIsNone()
là một phương thức của lớp TestCase
trong mô-đun unittest
. Phương thức assertIsNone()
kiểm tra xem một biểu thức có phải là None
hay không:
assertIsNone(expr, msg=None)
Nếu expr
là None
, bài kiểm tra sẽ thành công. Ngược lại, bài kiểm tra sẽ thất bại.
Tham số msg
là tùy chọn. Nó sẽ được hiển thị trong kết quả kiểm tra nếu bài kiểm tra thất bại.
Bài viết này được đăng tại [free tuts .net]
Ví dụ về phương thức assertIsNone()
của Python
Hãy cùng xem một số ví dụ về cách sử dụng phương thức assertIsNone()
.
Sử dụng assertIsNone()
với một trường hợp thành công
Ví dụ sau sử dụng assertIsNone()
để kiểm tra xem biến message
có phải là None
hay không:
import unittest class TestNone(unittest.TestCase): def test_variable_none(self): message = None self.assertIsNone(message)
Chạy kiểm tra:
python -m unittest -v
Kết quả:
test_variable_none (test_none.TestNone) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.000s
Sử dụng assertIsNone()
với một trường hợp thất bại
Ví dụ sau sử dụng phương thức assertIsNone()
để kiểm tra xem biến message
có phải là None
hay không:
import unittest class TestNone(unittest.TestCase): def test_variable_not_none(self): message = 'Hello' self.assertIsNone(message)
Chạy kiểm tra:
python -m unittest -v
Kết quả:
test_variable_not_none (test_none.TestNone) ... FAIL ====================================================================== FAIL: test_variable_not_none (test_none.TestNone) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\python-unit-testing\test_none.py", line 7, in test_variable_not_none self.assertIsNone(message) AssertionError: 'Hello' is not None ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (failures=1)
Vì message
là 'Hello'
, nó không phải là None
. Do đó, bài kiểm tra thất bại.
Sử dụng assertIsNone()
với một trường hợp thất bại và thông báo lỗi
Ví dụ sau sử dụng assertIsNone()
để kiểm tra xem biến message
có phải là None
hay không và hiển thị thông báo lỗi khi kiểm tra thất bại:
import unittest class TestNone(unittest.TestCase): def test_variable_not_none(self): message = 'Hello' self.assertIsNone( message, f'The message is "{message}" so it is not None.' )
Chạy kiểm tra:
python -m unittest -v
Kết quả:
test_variable_not_none (test_none.TestNone) ... FAIL ====================================================================== FAIL: test_variable_not_none (test_none.TestNone) ---------------------------------------------------------------------- Traceback (most recent call last): File "D:\python-unit-testing\test_none.py", line 7, in test_variable_not_none self.assertIsNone( AssertionError: 'Hello' is not None : The message is "Hello" so it is not None. ---------------------------------------------------------------------- Ran 1 test in 0.001s FAILED (failures=1)
Phương thức assertIsNotNone()
của Python
Phương thức assertIsNotNone()
là đối lập của phương thức assertIsNone()
. Phương thức assertIsNotNone()
kiểm tra xem một biến có phải là None
hay không.
assertIsNotNone(expr, msg=None)
Bài kiểm tra sẽ thành công nếu expr
không phải là None
, ngược lại sẽ thất bại. Ví dụ:
import unittest class TestNone(unittest.TestCase): def test_variable_is_not_none(self): message = 'Bye' self.assertIsNotNone(message)
Chạy kiểm tra:
python -m unittest -v
Kết quả:
test_variable_is_not_none (test_not_none.TestNone) ... ok ---------------------------------------------------------------------- Ran 1 test in 0.001s OK