Unit testing 初学者程序员应该使用单元测试吗?

Unit testing 初学者程序员应该使用单元测试吗?,unit-testing,testing,phpunit,tdd,codeception,Unit Testing,Testing,Phpunit,Tdd,Codeception,我已经学习PHP好几个月了。这不是我的第一语言,但它是我在实际项目中尝试使用的第一语言。目前,我正在编写一个web应用程序,对有经验的程序员来说很容易,但对我来说相当困难。我写得越多,我就越意识到我花在按下按钮和输入测试代码上的时间比实际写代码要多。我听说过单元测试(以及其他类型的测试),这让我想知道:我的简单web应用程序是否需要任何自动测试,或者这是一种完全的过度使用?单元测试是初学者可以学习的东西,还是只有经验丰富的程序员才能正确使用?既然我正在编写一个web应用程序,那么它的所有代码都可

我已经学习PHP好几个月了。这不是我的第一语言,但它是我在实际项目中尝试使用的第一语言。目前,我正在编写一个web应用程序,对有经验的程序员来说很容易,但对我来说相当困难。我写得越多,我就越意识到我花在按下按钮和输入测试代码上的时间比实际写代码要多。我听说过单元测试(以及其他类型的测试),这让我想知道:我的简单web应用程序是否需要任何自动测试,或者这是一种完全的过度使用?单元测试是初学者可以学习的东西,还是只有经验丰富的程序员才能正确使用?既然我正在编写一个web应用程序,那么它的所有代码都可以测试吗,还是只能测试小的逻辑部分


谢谢。

一切都可以测试。如果你花那么多时间输入,我肯定认为你应该使用单元测试。编写单元测试和应用程序本身之间没有区别,因此经验不重要。尽管很难提出涵盖所有边缘情况的好的单元测试。

一切都可以很好地测试。如果你花那么多时间输入,我肯定认为你应该使用单元测试。编写单元测试和应用程序本身之间没有区别,因此经验不重要。尽管很难提出涵盖所有边缘情况的好的单元测试。

“我花更多的时间按下按钮并输入输入来测试代码,而不是实际编写代码”
-那么你为什么不想自动化这个过程呢?这是一个基于观点的问题,因此它是离题的。也就是说,是的,您当然可以对代码进行单元测试。事实上,如果您编写的不是一个小项目,那么您应该对代码进行单元测试。有人说,你应该先编写测试,然后再编写实际代码。@Feisty Otter不会直接回答基于意见的问题。。。但我要告诉你们的是,作为一名程序员,单元测试是一项非常重要的技能。高效地测试易于理解和被他人认可的代码对于您的程序的成功至关重要。在编写测试用例的过程中,您将注意到可以进行的改进,并深入理解程序中的逻辑流。尽管如此,我想你知道我对是否应该在现实世界中对代码进行单元测试的看法,我认为用单元测试进行测试是不可能的。因为您无法通过编程模拟困难的测试情况。您可以为非常简单的情况设计单元测试。但是,如何使用单元测试来实现IKEv2密钥更新算法呢?…@vadim_hr对不起,这是胡说八道。许多人没有得到的核心内容是:单元测试为可测试单元工作。您单独测试每个单元,并确保它支持它。但是当你的“单位”在做20件不同的事情时,是用30个不同的字段来做的。。。那你就不能进行单元测试了。但这并不是因为“单元测试”不起作用,而是因为您创建了无法进行单元测试的代码。
“我花在测试代码上的按钮和输入的时间比实际编写代码的时间要多”
-那么您为什么不想自动化这个过程呢?这是一个基于观点的问题,因此它是离题的。也就是说,是的,您当然可以对代码进行单元测试。事实上,如果您编写的不是一个小项目,那么您应该对代码进行单元测试。有人说,你应该先编写测试,然后再编写实际代码。@Feisty Otter不会直接回答基于意见的问题。。。但我要告诉你们的是,作为一名程序员,单元测试是一项非常重要的技能。高效地测试易于理解和被他人认可的代码对于您的程序的成功至关重要。在编写测试用例的过程中,您将注意到可以进行的改进,并深入理解程序中的逻辑流。尽管如此,我想你知道我对是否应该在现实世界中对代码进行单元测试的看法,我认为用单元测试进行测试是不可能的。因为您无法通过编程模拟困难的测试情况。您可以为非常简单的情况设计单元测试。但是,如何使用单元测试来实现IKEv2密钥更新算法呢?…@vadim_hr对不起,这是胡说八道。许多人没有得到的核心内容是:单元测试为可测试单元工作。您单独测试每个单元,并确保它支持它。但是当你的“单位”在做20件不同的事情时,是用30个不同的字段来做的。。。那你就不能进行单元测试了。但这不是因为“单元测试”不起作用,而是因为您创建了无法进行单元测试的代码。一切都好吗?我认为,如果一切都能如此美妙,Windows中就不会有BSOD了。@vadim_hr,因为一些开发人员在周一上午手动测试软件;)一切?我认为,如果一切都能如此美妙,Windows中就不会有BSOD了。@vadim_hr,因为一些开发人员在周一上午手动测试软件;)