下面是我們的測試用例, 它檢查到我發送了信息,但并沒有實際的發送出這條信息(到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 開始編寫更加聰明的測試是真的很簡單的.
總結
Python的 mock 庫, 使用起來是有點子迷惑, 是單元測試的游戲規則變革者. 我們通過開始在單元測試中使用 mock ,展示了一些通常的使用場景, 希望這篇文章能幫助 Python 克服一開始的障礙,寫出優秀的,能經得起測試的代碼.
原文轉自:http://www.diggerplus.org/archives/2704