在Python3中使用单元测试和正常进行测试之间的区别



使用单元测试和普通测试之间的实际区别是什么?

所谓normal tests,我的意思是,例如,使用if语句来确定计算是否等于所需答案(如果返回false(,我们可以提高AssertionError

让我们以一段简单的代码为例:

def square(a):
return a*a;

旨在孤立地查找此函数中的错误的测试是单元测试。这与您实际实现它们的方式无关:如果您只编写一个像if (square(3) != 9)这样的if语句,并按照您所说的那样引发一个AssertionError,那么这就是一个单元测试。如果您使用unittest通过调用assertEqual来实现相同的测试,那么它也是一个单元测试。

换句话说,是否使用(所谓的(单元测试框架并不是测试是否为单元测试的标准。事实上,尽管有框架的名称(Python中的'nittest',Java中的'JUnit',…(,这些框架也可以用于单元测试以及其他测试,如集成测试。因此,这些框架的名称有点误导。

关于单元测试和普通测试之间的区别的原始问题到此为止。在其中一条评论中,你更清楚地表明,你实际上想知道什么更好:使用还是不使用测试框架。而且,答案很明确:一定要选择一个测试框架。

在"手工"写了几个测试之后,也就是说,在没有测试框架的情况下,你会发现你的测试代码中有很多重复:你将结果与if进行比较,这没有太大区别。但是,在成功的情况下,你会写一些"通过"的消息,带有测试名称,在失败的情况下你会写一个"失败"的消息。在这种情况下,还会写一些关于实际结果和预期结果的额外信息。你有没有想过被测试的代码出现异常退出的情况?因此,您还必须用try/catch块来包装它,以确保意外的异常会导致"失败"的结果,并再次提供一些有用的诊断信息。

等等…所有这些以及更多都由测试框架为您处理。

根据您的问题,您假设有两种测试类型:单元测试

正常测试如果我们假设"正常测试"是"黑盒测试"。它正在测试没有源代码的软件。对于单元测试,软件的另一部分测试源代码本身的完整性。这是什么意思?你写了一个求和两个数字的函数。对于单元测试,您正在编写另一个函数,以检查您的第一个函数是否工作

# Your Function
def my_sum_function(x,y):
return(x+y)
# Your Unit Test Function
def test_sum():
assert my_sum_function([1, 2]) == 3, "Should be 6"

不仅对Python,而且对所有编程语言逻辑的测试都是一样的。

用于质量控制。如果你在自己的库中编码一个名为"app1"的应用程序,其中有一个函数f1和另一个函数f2(f2使用f1(

无单元测试:你可以在函数f1中进行更改,测试它,它将在f2中工作,但你不会注意到,在你两周前编写的程序"app0"中,它会使你的应用程序崩溃,因为在你的旧应用程序"appo"中,你有一个函数f3,f3也在使用f1…

带单元测试:你可以捕捉到这种讨厌的错误,因为函数f3的测试将不再通过,当你在"app1"中更改函数f1时,IDE会告诉你

我希望它有意义(英语不是我的母语(

相关内容

最新更新