|
你会注意到我们的测试用例没有太大变化:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from mymodule import RemovalService
import mock
import unittest
class RemovalServiceTestCase(unittest.TestCase):
? ?@mock.patch('mymodule.os.path')
? ?@mock.patch('mymodule.os')
? ?def test_rm(self, mock_path):
? ? ? ?# instantiate our service
? ? ? ?reference = RemovalService()
? ? ? ?# set up the mock
? ? ? ?mock_path.isfile.return_value = False
? ? ? ?reference.rm("any path")
? ? ? ?# test that the remove call was NOT called.
? ? ? ?self.assertFalse(mock_os.remove.called, "Failed to not remove the file if not present.")
? ? ? ?# make the file 'exist'
? ? ? ?mock_path.isfile.return_value = True
? ? ? ?reference.rm("any path")
? ? ? ?mock_os.remove.assert_called_with("any path")
很好,我们知道?RemovalService?会如预期般的工作.接下来让我们创建另一个服务,将?RemovalService?声明为它的一个依赖:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import os.path
class RemovalService(object):
? ?"""A service for removing objects from the filesystem."""
? ?def rm(self, filename):
? ? ? ?if os.path.isfile(filename):
? ? ? ? ? ?os.remove(filename)
class UploadService(object):
? ?def __init__(self, removal_service):
? ? ? ?self.removal_service = removal_service
? ?def upload_complete(self, filename):
? ? ? ?self.removal_service.rm(filename)
(编辑:网站开发网_盐城站长网 )
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|