下面是我們的測試用例, 它檢查到我發(fā)送了信息,但并沒(méi)有實(shí)際的發(fā)送出這條信息(到Facebook上):
1 2 3 4 5 6 7 8 9 10 11 12 |
import facebook import simple_facebook import mock import unittestclass SimpleFacebookTestCase(unittest.TestCase): @mock.patch.object(facebook.GraphAPI, 'put_object', autospec=True) def test_post_message(self, mock_put_object): sf = simple_facebook.SimpleFacebook("fake oauth token") sf.post_message("Hello World!") # verify mock_put_object.assert_called_with(message="Hello World!") |
就我們目前所看到的,在Python中用 mock 開(kāi)始編寫(xiě)更加聰明的測試是真的很簡(jiǎn)單的.
總結
Python的 mock 庫, 使用起來(lái)是有點(diǎn)子迷惑, 是單元測試的游戲規則變革者. 我們通過(guò)開(kāi)始在單元測試中使用 mock ,展示了一些通常的使用場(chǎng)景, 希望這篇文章能幫助 Python 克服一開(kāi)始的障礙,寫(xiě)出優(yōu)秀的,能經(jīng)得起測試的代碼.
原文轉自:http://www.diggerplus.org/archives/2704