Python 即使函数作为可调用的传递,AssertRaisses也不会捕获异常

Python 即使函数作为可调用的传递,AssertRaisses也不会捕获异常,python,python-3.x,Python,Python 3.x,当我运行下面的单元测试时,我得到以下输出 ====================================================================== ERROR: test_find_playlist_file_invalid (__main__.TestSpotifyScraperAPI) ---------------------------------------------------------------------- Traceback (

当我运行下面的单元测试时,我得到以下输出

    ======================================================================
ERROR: test_find_playlist_file_invalid (__main__.TestSpotifyScraperAPI)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/gareth/Dropbox/programming/python/spotify_ripper/test/SpotifyScraperAPITest.py", line 15, in test_find_playlist_file_invalid
    spotify_scraper_api = SpotifyScraperAPI("non_existent_dir")
  File "/home/gareth/Dropbox/programming/python/spotify_ripper/SpotifyScraperAPI.py", line 7, in __init__
    self.playlist_file = self.find_playlist_file()
  File "/home/gareth/Dropbox/programming/python/spotify_ripper/SpotifyScraperAPI.py", line 14, in find_playlist_file
    raise OSError("Given playlist folder does not exist")
OSError: Given playlist folder does not exist
__

所以它抛出了正确的错误,但没有被捕获,即使我将函数作为可调用函数传入?我搞砸了什么


提前谢谢

异常来自构造函数。要在unittest中为其断言,您可以使用
assertRaises
作为上下文管理器,并将构造函数移动到上下文管理器主体

class TestSpotifyScraperAPI(unittest.TestCase):

    def test_find_playlist_file_invalid(self):
        with self.assertRaises(OSError):
            SpotifyScraperAPI("non_existent_dir")

异常来自构造函数。要在unittest中为其断言,您可以使用
assertRaises
作为上下文管理器,并将构造函数移动到上下文管理器主体

class TestSpotifyScraperAPI(unittest.TestCase):

    def test_find_playlist_file_invalid(self):
        with self.assertRaises(OSError):
            SpotifyScraperAPI("non_existent_dir")

看看追踪。异常根本不是来自
assertRaises
受保护的行。请查看回溯。异常根本不是来自
assertRaises
受保护的行。