Let's Build A Forum with Laravel and TDD 笔记 004

图片alt

这一周纠结了一些其他的问题,所以依然停留在了第五集。不过有一些关于测试的想法,还是要梳理一下的。

以前我总是纠结测试,比如说测试一个模型返回的字段是否齐全什么的,后来想想其实我们可以一个一个的assert。

然后还有一个问题是,比如我们没有返回某些字段,那么我们在模型里面定义的一些衍生字段是否还有效,这个让我明天测试一下。

然后依然继续学习如何做测试,就说到这吧,得去调整一下dns有些慢

Let's Build A Forum with Laravel and TDD 笔记 003

图片alt

今天学习了第三集和第四集,下面依然是个人总结

  1. 没错,第三集用到了单元测试也就是 unit 的部分,跟我之前看其他文章了了解的差不多, feature 主要用来测试面向用户的功能 unit 是用来测试我们内部功能的,也就是一个个的最小单元,或者其他的合并单元,然后由这些单元组合成为 controller 里面的代码最终呈现给用户,然后 feature 再来测试 controller 里面的代码。
  2. 关于测试以前都是弄出一个数据然后我们自己调试页面然后观察数据,现在就可以用 unitfeature 来让机器帮我们判定了。我们期待什么值,就让他来断言一下就ok了,但是个人还是比较担心出问题,比如数据不全神马的,这个还得后期继续考虑一下
  3. factorymakecreate 的区别, make 仅仅是生成了数据,create 不仅仅是生成了数据,并且将数据保存到数据库中,所以 create 可以理解为首先 make 然后 save 了。
  4. 在测试文件中 be 方法的作用,就是把当前我们生成的用户,设置为登录状态
  5. 在测试的时候不仅要测试正常的情况,也要测试异常的情况
  6. 功能职责要分清楚,比如发布 Reply 的时候就应该把方法写入到 ReplyController
  7. 关联关系居然可以添加数据,详情参见这里吧 https://laravel.com/docs/5.6/eloquent-relationships#the-create-method

Let's Build A Forum with Laravel and TDD 笔记 002

图片alt

今天学习了第二节,原以为一节课只有不到10分钟,一天可以学习好几节,但是呢,自己就得去学习不足的知识,结果不到一个10分钟的课程,自己就扩展到了将近40分钟,好了,说说今天的心得

  1. 在写功能之前,先做好测试用例,这样可以方便我们去实现功能,也可以提供思路
  2. 在 laravel 的 test 文件夹中有两个字文件夹,分别是 featureunit 这两个一个是功能测试一个是单元测试,就在这里我去查了一下东西,但是理解的也不是很好下面说说自己的理解
    • 功能测试是面向用户的,也就是说我们需要测试代码中的 controller 部分,为什么这么说呢,因为只有 controller 部分才是面向用户的,不论这个功能有多大,这里面一个方法都是对用户的。
    • 单元测试就可以理解为其他的部分了,因为 controller 里面的代码都是由剩余部分的代码组成的,所以这些都是一个个的子单元
    • 其他部分的代码也有可能由其他的部分一起组成,所以我个人觉得也应该写单元测试
    • 不知道上面说的对不对
  3. 写代码的时候应该划分好各自的职责

Let's Build A Forum with Laravel and TDD 笔记 001

图片alt

这个教程是 laracasts 上面的一个系列教程,对于我来说有很多比较多的东西没有接触过,所以起码看完第一集来说对我还是很有帮助的,在其他论坛也是有相关笔记的,我仔细想了一下如果也是想他们那样记录每一步的操作来说意义并不大,毕竟我可以直接看他们的文章。所以这里面还记录一些我个人的感悟

  1. 初步了解了 factory 的用法,比如在 thinker 虚拟数据,在测试的时候模拟数据,但是更多的东西还得看看文档才可以
  2. 以后再使用 php artisan 命令的时候多多看看 --help 会有很多简便的方式让我们能少执行几个命令 比如 php artisan make:model xxxModel -mr 这个命令就会帮助我们生成 resource 形式的 controller 以及迁移文件。
  3. 在 laravel 5.6 中 factory 是分文件的,个人理解可能会比较清晰,不用全部都写在一个文件里面了。方便管理

最后,再说一句,弄这个东西,给我的docker完善了不少