Tôi đang cố gắng kiểm tra ngoại lệ.Bài kiểm tra đơn vị Bài toán với assertRaises
tôi có:
def test_set_catch_status_exception(self):
mro = self.mro
NEW_STATUS = 'No such status'
self.assertRaises(ValueError,mro.setStatus(NEW_STATUS))
tôi nhận được lỗi sau:
======================================================================
ERROR: test_set_catch_status_exception (__main__.TestManagementReviewGoalGetters)
----------------------------------------------------------------------
Traceback (most recent call last):
File "test_ManagementReviewObjective.py", line 68, in test_set_catch_status_exception
self.assertRaises(ValueError,mro.setStatus(NEW_STATUS))
File "/Users/eric/Dropbox/ManagementReview.py", line 277, in setStatus
raise ValueError('%s is not in the list of allowed statuses: %s' % (status,LIST_OF_STATUSES))
ValueError: No such status is not in the list of allowed statuses: ['Concern or Delay', 'On Track', 'Off Track/Needs Attention']
----------------------------------------------------------------------
Cảm ơn
Điều đó đã làm nó! Cảm ơn. :) –
@Eric: Không sao cả. – unutbu
Tôi đang sử dụng python 3.3 interpreter trong pycharm IDE. Điều gì sẽ xảy ra nếu tôi muốn chuyển đối số cho hàm đang được kiểm tra và cũng bao gồm thông báo trong trường hợp lỗi mong muốn không được nâng lên? Ví dụ - 'self.assertRaises (ValueError, person.set_age_method, -10," Lỗi: Tuổi của người đó không thể âm. ")' Với điều này, tôi nhận được một ngoại lệ: 'set_age_method lấy 2 đối số vị trí nhưng 3 đã được đưa ra'. Làm thế nào để sửa lỗi này? Btw, các tài liệu cho xác nhận này không nói rõ với bạn làm thế nào để làm điều đó. https://docs.python.org/3/library/unittest.html#unittest.TestCase.assertRaises. ** kwds là gì? – testerjoe2