第十二次视频 自动化测试

A. 写测试的重要性

我觉得在写软件的时候,除了极个别的超级牛人,真有不少“牛人”觉得自己的代码不用测,让他写测试就是当面污辱他,都会认同写测试和写文档的重要性,我当然也非常的认同,写测试会让自己心里有底。尤其是在重构软件的时候,不会觉得特别的心虚,不会把以前能用的功能又搞坏了吧?

真事儿

曾经,我老家民风淳朴,勇敢,开车那是绝对不能系安全带的,只有胆小鬼才会系安全带。如果你坐在副驾驶,敢系安全带,那朋友就别做了,当场绝交,这绝对是对司机最大的羞辱!
现在,有些人觉得让他写测试就是最大的羞辱。怎么着,以为我写的代码不够鲁棒么?

 

如果是大公司,有专门的测试员还可以强行甩锅,如果是自己的项目,自己写自己测试,还是花点时间写测试比较好。

B. 测试的粒度

虽然我写测试,但是我并不喜欢写测试,写测试并没有太多乐趣。

测试总有个粒度的问题,100%都测试一遍是不可能的。所以,我自己做的时候基本上按照下面的情况写测试:

  1. 用户界面不写,反正自己眼睛看看就可以了
  2. 重要的功能如安全方面写测试
  3. 觉得以后可能会取消的功能不写,都可能取消了,写个屁啊!
  4. 领导看重的功能不想写也要写(重点!)

C. 如何写测试

我在视频中反复强调,Rails是个功能大而全的框架,无论是我们生成控制器(Controller)的时候还是生成模型(Model)的时候,都会顺便给我们生成test文件,比如上两次课中生成的:

test/controllers/users_controller_test.rb
test/models/user_test.rb

这两个文件都是我们在生成controller和model自动生成的,当然了,现在还没有内容,我们的测试用例是写在这几个文件里,然后运行

$rails test
......
/Users/dong/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:26:in `rescue in mysql2_connection': Unknown database 'lmzdx2_test' (ActiveRecord::NoDatabaseError)

如果你碰到的错误和我一样,这个错误说明没有建数据库。要再建一个test的数据库。

Rails项目环境

Rails项目默认生成三个环境,一个是测试环境,一个是开发环境,还有一个是生产环境。这对应于每个环境。可以使用下面这条命令检查一下:
首先使用rails console进入console,然后执行Rails.env就知道是在哪个环境下了。
如果想进入test环境,可以执行: rails console test

 

D. Rails的控制台

如果你还没有建立过user的控制器和模型,先要执行下面三条命令。

rails generate controller Users new
rails generate model User name:string email:string
rails db:migrate

如果已经执行过的就不用了。

rails console是一个可以在命令行下与rails交互的程序。因为Rails主要是用来在web软件的,如果web端还没有建立好,那么可以在console下对rails进行操作。这样非常的方便。

Deploy Ruby on Rails App on Ubuntu 18.04

我的收费视频里,第四期是如何布署Ruby on Rails在Ubuntu 16.04上,我觉得可能是我没讲清楚,结果很多同学照着视频也没布署成功,Linux功底越深厚的同学,布署成功的几率越高。

因为那次是我第一次录,所以经验不足,这次经验足了,希望是吧 🙂

按照这两周问的问题,我觉得主要有以下几个主要问题导致布署失败。

继续阅读“Deploy Ruby on Rails App on Ubuntu 18.04”

我在网易云课堂上的收费课程购买链接

我在网易云课堂的课程终于上线了,价格是100元人民币,网易提供了平台,会分成30%,国家还会收20%的意外所得税。如果通过我的推广链接购买的话,我能多拿一些钱。

如果你是通过我的电台,公众号或者网站知道的话,希望你能通过这个网易推广链接去购买。

网易推广链接:https://study.163.com/course/courseMain.htm?courseId=1005687008&share=2&shareId=1019590015

购买以后,可以加答疑QQ群,群号是838202226。我的个人微信是 liuyandong00 。

项目一边做,一边录视频,一边布署,项目的布署地址为 lmzdx.net


如果你也部署项目,上国际互联网,想购买vultr.com主机来,可以用这个推广链接,这样你我可能都能节省25美元。