使用单元测试和普通测试之间实际上有什么区别?
通过normal tests
我的意思是,使用if语句,例如,以确定是否计算等于如果返回false所需的答案,我们可以提高AssertionError
让我们以一个简单的代码为例:
def square(a):
return a*a;
旨在单独查找此功能中的错误的测试是单元测试。这与您实际实现它们的方式无关:如果您只写if
像这样的语句if (square(3) != 9)
并AssertionError
按照您的意愿提出,那么这就是单元测试。相反,如果您unittest
通过调用来实现相同的测试assertEqual
,那么它也是一个单元测试。
换句话说,是否使用(所谓的)单元测试框架不是测试是否为单元测试的标准。实际上,尽管有框架的名称(Python中为“ unittest”,Java中为“ JUnit”,...),这些框架仍可用于单元测试以及其他测试,例如集成测试。因此,这些框架的名称有点误导。
关于单元测试和普通测试之间的区别的原始问题就这么多了。在其中的一条评论中,您更清楚地表明您实际上想知道哪种更好:使用或不使用测试框架。而且,答案很明确:绝对要使用测试框架。
在“手动”编写了少量测试(即没有测试框架)之后,您将看到测试代码中有很多重复项:将结果与进行比较if
-差别不大。但是然后,在成功的情况下,您将使用测试名称编写一些“通过”消息,在失败的情况下,您将使用测试名称再次编写“失败”的消息,在这种情况下,还将包含一些关于实际名称的信息。以及预期的结果是什么。并且-您是否考虑过被测代码异常退出的情况?因此,您还必须用try / catch块包装它,以确保意外的异常导致“失败”结果,并再次提供一些有用的诊断信息。
依此类推...测试框架将为您处理所有这些以及更多工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句