
assert.bail은 assertion이 실패했을 때 프로그램을 중단하는 기능이지만, assert.bail을 사용하지 않았을 때도 assertion이 실패하면 프로그램이 중단됩니다.
이유는 unittest.TestCase의 assert메서드가 assert.bail을 사용할 때와 사용하지 않을 때의 동작이 다르기 때문입니다.
assert메서드는 assertion이 실패했을 때 AssertionError를 발생시키고, assert.bail을 사용했을 때는 AssertionError를 발생시키고 프로그램을 중단시킵니다.
self.assertEqual()은 unittest.TestCase의 메서드가 아니므로, assert.bail을 사용할 때와 사용하지 않을 때의 동작이 다릅니다.
self.assertEqual()은 assertion이 실패했을 때 AssertionError를 발생시키지만, 프로그램을 중단시키지 않습니다.
따라서, assert.bail을 사용하였을 때 프로그램이 중단되지 않는 이유는 self.assertEqual()이 unittest.TestCase의 메서드가 아니기 때문입니다.
assert.bail을 사용할 때는 assertion이 실패했을 때 프로그램을 중단시키기 위해 unittest.TestCase의 메서드인 assert메서드를 사용해야 합니다.
예를 들어, 다음 코드를 사용할 수 있습니다.
#hostingforum.kr
python
import unittest
class TestClass(unittest.TestCase):
def test_assert_bail(self):
assert 1 == 2, "Assertion Error"
self.assert_(1 == 2) # assert메서드를 사용
if __name__ == '__main__':
unittest.main()
이 코드에서는 assert메서드를 사용하여 assertion이 실패했을 때 프로그램을 중단시킵니다.
2025-05-19 23:54