Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để bạn kiểm tra rằng một hàm Python ném ra một ngoại lệ?

Chúng tôi viết một hàm duy nhất không thành công nếu một hàm không đưa ra một ngoại lệ như mong đợi.

Chúng tôi cũng kiểm tra xem một hàm Python có ném ra ngoại lệ hay không.

Ví dụ:hãy xem mã mẫu mà chúng tôi dán vào trình bao Python để kiểm tra độ an toàn kiểu của Python:

Ví dụ

import unittest
class MyTestCase(unittest.TestCase):
   def test_1_cannot_add_int_and_str(self):
      with self.assertRaises(TypeError):
         1 + '1'
      def test_2_cannot_add_int_and_str(self):
      import operator
      self.assertRaises(TypeError, operator.add, 1, '1')
 unittest.main(exit=False)

Chạy các bài kiểm tra

Đầu ra

Và kết quả đầu ra như sau -

..

----------------------------------------------------------------------

Ran 2 tests in 0.001s

OK

Thử nghiệm một sử dụng khẳng địnhRaises như một trình quản lý ngữ cảnh, đảm bảo rằng lỗi được phát hiện và làm sạch đúng cách, trong khi được ghi lại.

Chúng tôi cũng có thể viết nó mà không cần trình quản lý ngữ cảnh, hãy xem thử nghiệm hai. Đối số đầu tiên sẽ là loại lỗi bạn dự kiến ​​phát sinh, đối số thứ hai, hàm bạn đang thử nghiệm và các hàm còn lại và các hàm từ khóa sẽ được chuyển cho hàm đó.

Nó đơn giản hơn nhiều và có thể đọc được chỉ cần sử dụng trình quản lý ngữ cảnh.

Chúng tôi thấy điều đó như chúng tôi mong đợi, cố gắng thêm kết quả 1 và '1' vào TypeError.