KEMBAR78
Mock testing mit Python | PDF
Mock Testing mit Python
PyBonn Meetup – März 2013
Timo Stollenwerk
Testing Pyramide
Ein Test ist kein Unit Test wenn
●
    Datenbankverbindung
●
    Netzwerkverbindung
●
    Dateisystemzugriff
●
    Externer Service
Mocks in Python
●
    Mock
●
    Mocker
●
    pMock
●
    pyMock
●
    mox
●
    ...
PostMonkey
>>> from postmonkey import PostMonkey
>>> pm = PostMonkey('your_api_key')


>>> pm.ping()
u"Everything's Chimpy!"
Mocker
>>> mocker = Mocker()
>>> postmonkey = mocker.replace("postmonkey")
>>> pm = postmonkey.PostMonkey(ANY)


>>> pm.ping()
>>> mocker.result(u"Everything's Chimpy!")


>>> mocker.replay()
Mocker: PostMonkey
>>> from postmonkey import PostMonkey
>>> pm = PostMonkey('your_api_key')


>>> pm.ping()
u"Everything's Chimpy!"


>>> pm
<mocker.Mock object at 0x9d7624c>
Mock
>>> @patch('postmonkey.PostMonkey')
>>> def test_mailchimp_ping_method(mock_class):
>>>    mock_class().ping = MagicMock(
>>>        return_value=u"Everything's Chimpy!")
>>>    from postmonkey import PostMonkey
>>>    pm = PostMonkey('123')
>>>    assert pm.ping() == u"Everything's Chimpy!"


>>> test_mailchimp_ping_method()
Mock Testing mit Python
PyBonn Meetup – März 2013
Timo Stollenwerk




github.com/tisto/mock-testing-in-python

Mock testing mit Python

  • 1.
    Mock Testing mitPython PyBonn Meetup – März 2013 Timo Stollenwerk
  • 2.
  • 3.
    Ein Test istkein Unit Test wenn ● Datenbankverbindung ● Netzwerkverbindung ● Dateisystemzugriff ● Externer Service
  • 4.
    Mocks in Python ● Mock ● Mocker ● pMock ● pyMock ● mox ● ...
  • 5.
    PostMonkey >>> from postmonkeyimport PostMonkey >>> pm = PostMonkey('your_api_key') >>> pm.ping() u"Everything's Chimpy!"
  • 6.
    Mocker >>> mocker =Mocker() >>> postmonkey = mocker.replace("postmonkey") >>> pm = postmonkey.PostMonkey(ANY) >>> pm.ping() >>> mocker.result(u"Everything's Chimpy!") >>> mocker.replay()
  • 7.
    Mocker: PostMonkey >>> frompostmonkey import PostMonkey >>> pm = PostMonkey('your_api_key') >>> pm.ping() u"Everything's Chimpy!" >>> pm <mocker.Mock object at 0x9d7624c>
  • 8.
    Mock >>> @patch('postmonkey.PostMonkey') >>> deftest_mailchimp_ping_method(mock_class): >>> mock_class().ping = MagicMock( >>> return_value=u"Everything's Chimpy!") >>> from postmonkey import PostMonkey >>> pm = PostMonkey('123') >>> assert pm.ping() == u"Everything's Chimpy!" >>> test_mailchimp_ping_method()
  • 9.
    Mock Testing mitPython PyBonn Meetup – März 2013 Timo Stollenwerk github.com/tisto/mock-testing-in-python