我正在尝试使用 unittest
和 mock
库测试以下类:
class Connection(object):
def __init__(self, cookie):
self.connect = None
self.session = Session()
self.session.load(cookie)
# do some stuff with self.session
self.some_info = self.session.data['the_info']
当我创建 Connection
实例时,我如何根据 Session
实例的返回来测试是否断言 self.some_info
是否具有我期望的值?
我想使用模拟库。在它的文档中,我有一个模拟链式调用 ( http://www.voidspace.org.uk/python/mock/examples.html#mocking-chained-calls ) 的示例,但我不太清楚如何使它适应我的问题。
Session.load(cookie)
方法在Session
实例中设置一些属性。我想为每个 cookie 值的测试设置固定值。
最佳答案
假设 Connection
位于模块 package.module.connection
以下代码应该是您测试 session 的方式:
import mock
class TestConnection(unittest.TestCase):
@mock.patch('package.module.connection.Session')
def test_some_info_on_session_is_set(self, fake_session):
fake_session.data = {'the_info': 'blahblah'}
cookie = Cookie()
connection = Connection(cookie)
self.assertEqual(connection.some_info, 'blahblah')
fake_session.load.assert_called_once_with(cookie)
关于python - 在 Python 中模拟链式调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5319274/