Tôi đã có mã nơi assertRaises ném một ngoại lệ khi assertRaises thất bại. Tôi nghĩ rằng nếu assertRaises thất bại thì thử nghiệm sẽ thất bại và tôi sẽ nhận được một báo cáo ở cuối nói rằng thử nghiệm thất bại. Tôi đã không mong đợi ngoại lệ được ném ra. Dưới đây là mã của tôi. Tôi đang làm gì sai? Tôi đang sử dụng Python 2.6.2.python unittest assertRaises ném ngoại lệ khi assertRaises thất bại
import unittest
class myClass:
def getName(self):
raise myExcOne, "my exception one"
#raise myExcTwo, "my exception two"
#return "a"
class myExcOne(Exception):
"exception one"
class myExcTwo(Exception):
"exception two"
class test_myClass(unittest.TestCase):
def setUp(self):
self.myClass = myClass()
def testgetNameEmpty(self):
#self.assertRaises(myExcOne,self.myClass.getName)
#self.assertRaises(myExcTwo,self.myClass.getName)
try:
self.assertRaises(myExcTwo,self.myClass.getName)
except Exception as e:
pass
if __name__ == "__main__":
#unittest.main()
suite = unittest.TestLoader().loadTestsFromTestCase(test_myClass)
unittest.TextTestRunner(verbosity=2).run(suite)
bạn đặc biệt có ý nghĩa gì khi 'khẳng định không thành công'? Bạn có thể đăng một stacktrace hoặc một thông báo lỗi? –
Tôi đọc lại tài liệu và ném một ngoại lệ khi assertRaises thất bại là hành vi mong đợi. Tôi hiểu lầm cách công cụ hoạt động. Tôi quên đề cập đến điều này trong bài trước. Nếu tôi bắt được ngoại lệ, báo cáo nói với tôi rằng bài kiểm tra đã được thông qua mặc dù nó không xảy ra. Tôi đã cập nhật mã của mình trên –