3

Pythonモックモジュール(pipを使用してダウンロード)を初めて使用しようとしています。アサーションの設定に問題があります。次のコードに絞り込みました。

class TestUsingMock(unittest.TestCase):

    def setUp(self):
        self.fake_client = mock.Mock()

    def test_mock(self):
        self.fake_client.copy = mock.Mock()
        self.fake_client.copy("123")
        self.fake_client.assert_called_with("123")

if __name__ == "__main__":
    unittest.main()

これは私が得るエラーです:

F
======================================================================
FAIL: test_mock (__main__.TestVCSDriver)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "./mock_test.py", line 17, in test_mock
    self.fake_client.assert_called_with("123")
  File "/Library/Python/2.6/site-packages/mock.py", line 859, in assert_called_with
    raise AssertionError('Expected call: %s\nNot called' % (expected,))
AssertionError: Expected call: mock('123')
Not called

アサーションがなければ、すべてが正常に機能します。私は何が間違っているのですか?

4

1 に答える 1

7

オブジェクトを呼び出していますself.fake_client.copyが、別のオブジェクトが呼び出されているかどうかをテストしますself.fake_client

「正しい」オブジェクトを呼び出すか、次のようにします。

self.fake_client("123")
self.fake_client.assert_called_with("123")

または:をテストしcopyます

self.fake_client.copy("123")
self.fake_client.copy.assert_called_with("123")
于 2012-06-01T09:50:55.243 に答える