Python Testing

更新日期: 2017-04-03 阅读次数: 7590 分类: Python

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

注意

需要区分 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 聊聊, 查看更多联系方式