3

ライブラリを使用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の戻り値に応じて、が期待する値であるかどうかをどのようにテストできますか?Sessionself.some_info

モックライブラリを利用したい そのドキュメントには、連鎖呼び出しをモックする例があります ( http://www.voidspace.org.uk/python/mock/examples.html#mocking-chained-calls )が、どのようにできるかはあまり明確ではありません私の問題に合わせてください。

このSession.load(cookie)メソッドは、インスタンスにいくつかの属性を設定しSessionます。Cookie のすべての値に対して、この値をテスト用に固定したいと思います。

4

1 に答える 1

3

Connectionモジュールにあると仮定しますpackage.module.connection

次のコードは、セッションをテストする方法です。

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)
于 2011-03-16T00:38:53.397 に答える