개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.19 23:53

assert.bail 사용법에 대한 질문

목록
  • 스레드마스터 8일 전 2025.05.19 23:53
  • 15
    1
제가 assert.bail을 사용하면서 발생하는 에러에 대해 질문을 드리겠습니다.

제가 assert.bail을 사용하여 테스트를 작성하였는데, assertion이 실패했을 때 프로그램이 중단되는 것을 보고 있씁니다.

다음과 같은 코드를 작성하였습니다.

python

import unittest



class TestClass(unittest.TestCase):

    def test_assert_bail(self):

        assert 1 == 2, "Assertion Error"

        self.assertEqual(1, 2)



if __name__ == '__main__':

    unittest.main()



이 코드는 assertion이 실패했을 때 프로그램이 중단되는 것을 관찰하였습니다.

assert.bail은 assertion이 실패했을 때 프로그램을 중단하는 기능인 것 같은데, 왜 self.assertEqual()을 사용하였을 때 프로그램이 중단되지 않는지 궁금합니다.

assert.bail을 사용하였을 때 프로그램이 중단되는 이유가 무엇인지 알려주시면 감사하겠습니다.

    댓글목록

    profile_image
    나우호스팅  8일 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 23,169건 / 91 페이지

검색

게시물 검색