IDEA激活码 (2021-09-26)
全网最全idea主题,phpstorm主题,webstorm主题免费下载

单元测试——看似无用,实有大用

对新手来讲单元测试往往认为是遥远模糊和不切实际的,这篇文章将描述单元测试的重要性以及在laravel中如何实现单元测试 

为何要在项目中使用单元测试

单元测试往往和另一个词结合出现,那就是自动化测试。自动化测试大概有两种,一种是前端的自动化测试,一种是后端的自动化测试。

不同平台中会有不同的工具来提供自动化测试的实现,比如android平台有官方的uiautomator框架来实现应用的自动化测试,使用此框架可以实现android应用的拟人操作。比如识别视图上的一个按钮文本,并且点击此按钮,然后在新的视图中继续识别元素并且做对应的断言。相应的web平台也有不少自动化测试框架可用。前端的自动化测试本文中一笔带过,主要说明后端的单元测试和自动化测试。

对于后端的开发者来讲,大家经常会使用postman等工具来实现接口的调试和自动化测试,甚至是压力测试(压力测试有专业工具,本文不做探讨,而且postman并不适合做压测工具)。长期以来大家在没有单元测试和自动化测试的个概念下,postman之类的工具已经成为开发习惯的一部分。其实这是一种很传统甚至古老的开发模式。

针对接口调试来讲,很多平台都会有自己提供的框架,拿laravel来讲,提供了接口调试的框架,你可以写响应的代码来调用接口并且实现断言。相对postman等工具来讲这种测试风格有一下好处:

laravel中如何实现单元测试

laravel的test目录存放测试相关的代码文件。包含两个子目录,Unit和Feature。unit目录中存放单元测试代码,针对单一函数,此目录中的代码无法访问数据库(或进行特殊操作后方可访问)。feature目录中存放和业务相关的测试用例,此目录中的代码是可以访问数据库的。

我们的接口可以在feature中创建测试用例来进行测试。比如一个进行过简单封装的测试用例可能会是这样:

可以看到,代码非常简洁,除了业务参数,系统参数都应封装到代码中,根本不需要在具体的测试用例中体现,用户信息也一样。

框架提供的接口非常简单,可以参考文档来自己针对具体业务来进行封装。laravel的对应文档请参考:https://learnku.com/docs/laravel/7.x/testing/7505

热门评论

    暂无