【发布时间】:2018-02-09 18:33:59
【问题描述】:
我已经学习 PHP 几个月了。它不是我的第一语言,但它是我尝试在实际项目中使用的第一种语言。目前我正在编写一个对有经验的程序员来说很容易但对我来说相当困难的 Web 应用程序。我写的越多,我就越意识到我花更多的时间按下按钮和输入输入来测试我的代码,而不是实际编写代码。我听说过单元测试(和其他类型的测试),这让我想知道:我的简单 Web 应用程序是否需要任何自动化测试,还是完全矫枉过正?单元测试是初学者可以学习的东西,还是只有经验丰富的程序员才能正确使用的东西?而且由于我正在编写一个 Web 应用程序,是否可以测试其所有代码或仅测试小的逻辑部分?
谢谢。
【问题讨论】:
-
"I spend more time pressing buttons and entering inputs to test my code than actually writing code"- 那你为什么不想自动化这个过程呢? -
这是一个基于意见的问题,因此它是题外话。话虽如此,是的,您当然可以对代码进行单元测试。事实上,如果您编写的不是小型项目,那么您应该对您的代码进行单元测试。 entire schools of thought 说你应该先编写测试然后然后编写你的实际代码。
-
@Feisty Otter 不会直接回答基于意见的问题... 但是我要告诉你的是,单元测试是作为一个非常重要的技能程序员。有效地测试易于理解和批准的代码对于程序的成功至关重要。在编写测试用例的过程中,您会注意到可以做出的改进,并深入了解程序中的逻辑流程。说了这么多,我想你知道我对你是否应该对你的代码进行单元测试的看法
-
在现实世界中,我认为使用单元测试进行测试根本不可能。因为您无法以编程方式模拟困难的测试情况。您可以为非常简单的情况设计单元测试。但是,例如,如何对 IKEv2 密钥更新算法使用单元测试?...
-
@vadim_hr 抱歉,这是废话。许多人没有得到的核心是:单元测试适用于可测试单元。您单独测试每个 unit 并确保它遵守合同。但是当你的“单元”正在做 20 件不同的事情时,正在使用 30 个不同的字段来做那件事……那么你就不能对其进行单元测试。但不是因为“单元测试”不起作用,而是因为您创建的代码无法进行单元测试。
标签: unit-testing testing phpunit tdd codeception