为什么可以使用传统的手动测试时使用phpunit


14

当我制作一个Web应用程序时,我会在浏览器上测试我的作品,以查看是否收到任何错误并进行修复。我已经完成了复杂的应用程序,并且以这种方式进行的测试非常简单快捷。我已经在YouTube上观看了许多有关phpunit的视频,但找不到目的。为什么这个库有用?phpunit是否更适合蛋糕框架或zend之类的PHP框架?我不使用任何框架,只是核心php。phpunit对我有用吗?如果是,怎么办?

也有xdebug,但我不确定是否相关。


5
您需要花费多长时间在各个角落重新检查一个复杂的应用程序?

@ user1249,phpUnit仍然无法执行自动化功能测试。它仅执行自动化的单元测试。
Pacerier

Answers:


12

phpunit对我有用吗?如果是,怎么办?

当然是。

phpunit属于xUnit测试库家族。您可以使用这些库来创建自动可执行的测试,以验证应用程序的行为。重要的是要确保您所做的更改不会破坏现有功能。

列出所有进行自动测试的原因,各种类型和技术都太多了。查看以下链接以了解有关信息:


讽刺的是,第一连杆由O'Reilly 404'd
费利克斯Gagnon的-格雷尼尔

6

假设您想在每次部署应用程序时对其进行手动测试。您将如何去做?

好吧,首先,您可以列出所有要测试的内容,这样您以后就不会忘记进行测试。然后,您可能会为每个测试编写步骤,以确保每次都以相同的方式进行操作。如果您不确定使用的测试过程是否一致,则结果将不一致。

因此,既然您具有需要执行的测试列表,就可以打开浏览器,阅读第一个测试的步骤,执行它们,并记下结果。您将对列表中的每个测试重复此过程。

随着应用程序的增长以及发现新的错误,您执行的测试数量将继续增长。当然,您将只能以人工的速度执行这些测试,这会使它们相当缓慢。

具有讽刺意味的是,在机械地逐步执行操作列表时,您正在计算。您这样做的速度要比计算机慢。

这是我们编写单元测试的原因之一,其中包括许多其他充分的理由:它们使计算机可以进行计算,因此您不必这样做。

我可以足够快地运行一个全面的单元测试套件,以在开发期间频繁使用它,而不仅仅是在部署之前每周一次。这使我可以更快地检测到错误,从而节省了时间和金钱。

我什至可以编写预测系统行为的测试,然后编写该行为(我已经知道它是正确的,因为我刚刚对其进行了测试),该过程称为“测试驱动开发”。


5

手动测试(即在浏览器中单击应用程序)实际上称为功能测试。功能测试和单元测试是质量检查中使用的两种不同方法。为什么您认为不能同时使用它们?

单元测试用于测试您的代码是否按预期工作(例如,您的Web服务是否正确处理了错误或是否按预期返回了结果)。

当您单击应用程序时,您正在测试应用程序的功能

phpunit对我有用吗?如果是,怎么办?

单元测试有很多好处-重构时它非常有用,因为您可以确认代码是否按预期工作。同样,当有人在阅读您的代码时,在单元测试中查看代码的预期用途也很有帮助。


单元测试还测试行为。您正在创建错误的二分法。
Rein Henrichs

@ReinHenrichs,功能测试是由Selenium而不是PHPUnit完成的。
Pacerier

1

是!

是。绝对没错。

实际上,这需要资格。如果您正在编写和维护其他人希望使用的应用程序,则像PHPunit这样的单元测试框架将非常有用。

单元测试有用的原因包括

  • 对您暴露的特定错误进行回归测试,以及

  • 运行单元测试比手动测试快得多,因此可以更彻底。

在我工作的公司中,我们在编写通过测试的代码之前先编写单元测试。这有助于我们生成合理的,可测试的设计(因为在执行此操作之前我们必须考虑我们将要编写的内容!),并且它提供了一种断言我们的代码满足用户要求的简便方法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.