Mock是Python中一个用于支持单元测试的库,它的主要功能是使用mock对象替代掉指定的Python对象,以达到模拟对象的行为。
python3.3 以前,mock是第三方库,需要安装之后才能使用。python3.3之后,mock作为标准库内置到 unittest。
unittest是Python标准库中自带的单元测试框架,unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,unittest则是Python语言的标准单元测试框架。
unittest是一个单元测试的框架,能够提供很多测试相关的功能,如:编写测试用例,准备测试环境,生成测试报告等。unittest 中集成了mock,可以用来模拟一些函数返回,未实现的接口等。
unittest导入mock对象:
from Unittest import mock
pytest是基于unittest衍生出来的新的测试框架,使用起来相对于unittest来说更简单、效率来说更高,pytest兼容unittest测试用例,但是反过来unittest不兼容pytest。
pytest也是一个测试框架,公认的比Unittest更加简单和高效。pytest中也有mock方法就是pytest-mock,pytest-mock是一个pytest插件,和 Unittest 中的mock使用接近,大多数方法的定义都是一致的。
对比
因为unittest集成了mock