这更像是一个过程问题,但我已经用Python编程一段时间了,我试图理解单元测试、函数测试之间的区别,以及何时适当地使用mock来测试函数。我有以下安排:
@classmethod
def get_value(cls, key):
if cls._definitionsDict is None:
cls.load_definitions()
if not key in cls._definitionsDict:
return None
else:
return cls._definitionsDict[key]
基本上,现在我想为这个函数编写一些测试。我正在考虑三种方法,我真的不确定哪种方法是正确的(阅读:最广泛接受的)做事方式。你知道吗
load_definitions
函数的测试,确保当cls._definitionsDict
是None
时,调用load_definitions
时不带任何参数。(我假设这是一个“严格的单元测试”)load_definitions
函数,而只是确保在给定特定输入的情况下输出与预期一致。(我假设这是一个“严格的功能测试”)我很想听听你对此的想法和看法。我想,在某种意义上,这个问题是在问,在哪里用嘲弄来划清界限。真正应该嘲笑的是什么?单元测试是测试代码流,还是仅仅是函数的输入/输出?你知道吗
作为补充说明,选项1似乎与“单元”测试的思想是一致的;然而,源代码中的任何更改也需要更新测试。这是单元测试的目标吗?你知道吗
似乎您对分类测试的各种方法有点困惑。我来澄清一下。你知道吗
单元测试是最低级别的测试,更高级别的是模块、集成和系统测试。你知道吗
功能测试是只看“功能”方面而不是代码的“非功能”方面的测试。功能测试可以在每个级别进行。你知道吗
你的问题中1和2的区别在于1是“白盒”测试,2是“黑盒”测试。黑盒测试只在单元/模块/系统的公共接口上运行,白盒测试也会查看被测试代码的内部。你知道吗
我个人对测试的看法如下:
相关问题 更多 >
编程相关推荐