之前的博客介绍了一些rails测试相关的知识。测试文件的位置,测试的类型,测试常用命令,以及可用的一些资源,以及如何利用fixtures生成模拟数据。
今天我们来实际的写一下单元测试,用到的知识主要是fixtures和unit test。fixtures用来模拟数据,unit test就是我们今天的主角-单元测试。
今天的代码将以blog项目为背景,为这个项目写一些单元测试。
这个项目的代码可以在https://github.com/woaigithub/blog获取到,而且项目已经部署到http://42.121.5.68:10000/,大家也可以直接在部署的生产环境上面写自己的博客。
master为主分支,develop为开发分支,开发分支中的代码是最新的。
项目使用ruby on rails开发,开发及测试环境使用sqlite3作为数据存储,生产环境使用mysql作为数据存储。
单元测试
rails的单元测试主要针对model,model是我们的业务实体。单元测试主要测试model的validates,以及model的业务规则,测试经过业务规则的执行,我们的model的变化,就是model的属性值,是否符合规则的描述,是否变为预期的值。
==广告开始
这个博客定位为一个协作的博客平台。就是大家每个人都可以在上面写博客,进行博客的管理,包括分类,tag等等。
博客的主要目标用户是开发者,同时也欢迎更多的其他类型从业者在这个平台发表博客。
通过右上角的注册,就可以成为这个博客平台的一个admin,然后就可以写博客,并且管理博客。当然了,看博客是不需要注册的,直接可以浏览。
在footer部分,有一个admin链接,通过链接可以进入后台。当然,进入后台需要登录。
博客平台还在继续开发中,如果大家有什么好的想法,或者想加入开发,都可以在https://github.com/woaigithub/blog上留言。
==广告结束
我们这次的项目是一个博客,有一些基本的功能。
浏览博客列表,分类浏览博客,浏览单个博文。
查看博文留言,给博文留言。
注册用户,登陆平台。
管理博客,管理博文,管理分类,管理tag,管理评论。
表结构如下
### users
id
nickname
password_digest
salt
created_at
updated_at
### tags
id
title
created_at
updated_at
### categorys
id
title
created_at
updated_at
### comments
id
commenter
commenter_email
commenter_url
content
post_id
created_at
updated_at
### posts
id
title
slug
category_id
summary
content
created_at
updated_at
user_id
### posts_tags
post_id
tag_id