似乎有2種使用方法unittest.mock.patch:是更好的方法嗎?unittest.mock.patch:上下文管理器vs setUp/tearDown in unittest
使用上下文管理器,並與聲明:
class MyTest(TestCase):
def test_something(self):
with patch('package.module.Class'):
assert package.module.Class is self.MockClass
或致電開始從安裝和拆卸/清理停止:
class MyTest(TestCase):
def setUp(self):
patcher = patch('package.module.Class')
self.MockClass = patcher.start()
self.addCleanup(patcher.stop)
def test_something(self):
assert package.module.Class is self.MockClass
上下文管理器的版本是更少的代碼,因此值得商榷容易讀書。我有什麼理由爲什麼我更喜歡使用TestCase setUp/tearDown基礎設施?
可能的重複[在python中,是否有一個很好的習慣使用上下文管理器在setup/teardown](http://stackoverflow.com/questions/8416208/in-python-is-there-a-good-idiom - 用於-使用上下文管理者合設置-拆除) – n611x007 2015-01-19 15:30:35