Python Testing

文章目录

    是否可自动化测试是评判程序好坏的唯一标准

    注意

    需要区分 mock 不同对象的方法, 例如:
    * mock method (被测试类已被实例化) -> MagicMock
    * mock method argument -> MagicMock
    * mock class (被测试类尚未被实例化, 但是需要 mock 其实例化后的指定方法) -> with patch

    Mock 与 MagicMock 的区别

    MagicMock 更灵活一些,官方推荐默认使用 MagicMock.

    什么时候使用 patch decorator

    由于 module 和 class 是全局的,所以执行完一个测试之后需要 unmock, 防止影响到其
    他的测试案例。

    patch decorator 会自动进行 unmock.

    patch V.S. patch.object

    • patch -> mock method
    • patch.object -> mock object method

    注意:
    - patch 和 patch.object 都无法对全局对象的方法进行 patch, 例如 mysql_conn.get

    参考

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式