为什么要使用JUnit进行测试?

也许我的问题是新手,但是我真的无法理解在什么情况下使用junit

无论是编写简单的应用程序还是大型应用程序,我都使用System.out语句对其进行测试,这对我来说很容易。

如果仍然需要调用相同的方法,检查它们返回的内容,然后又要为所有内容添加注释,那么为什么要使用JUnit创建测试类,在项目中创建不必要的文件夹呢?

为什么不编写一个类并立即对其进行System.out测试而不创建Test-class?

PS。我从未在刚刚学习的大型项目中工作过。

那么目的是什么?

回答:

那不是测试,而是“手动看输出”(在企业中称为LMAO)。更正式地说,它被称为“手动查找异常输出”(LMFAO)。(请参阅下面的注释)

每次更改代码时,都必须为受这些更改影响的所有代码运行应用程序和LMFAO。即使在小型项目中,这也是有问题且容易出错的。

现在,每次更改代码时,就可以扩展到50k,250k,1m

LOC或更高,以及LMFAO。这不仅令人不快,而且是不可能的:您已经放大了输入,输出,标志,条件的组合,并且很难行使所有可能的分支。

更糟糕的是,LMFAO可能意味着访问Web应用程序的页面,运行报告,遍历数十个文件和机器的数百万条日志行,阅读生成和发送的电子邮件,检查文本消息,检查机器人的路径,装满一瓶苏打水,从一百个Web服务中聚合数据,检查财务交易的审计记录……您就明白了。“输出”并不意味着几行文字,“输出”意味着聚合的系统行为。

最后,单元测试和行为测试 定义了

系统行为。测试可以由连续集成服务器运行,并检查其正确性。当然可以System.out,但是CI服务器不会知道其中之一是否错误–如果确实存在,则表明它们是单元测试,因此您最好使用框架。

无论我们认为自己有多好,人类都不是好的单元测试框架或CI服务器。


注意:LMAO 正在 测试,但意义 非常

有限。在整个项目中或作为过程的一部分,它不能以任何有意义的方式重复。这类似于在REPL中进行增量开发,但从不对那些增量测试进行形式化。

以上是 为什么要使用JUnit进行测试? 的全部内容, 来源链接: utcz.com/qa/417683.html

回到顶部