Rails测试《四》实战单元测试unit test

之前的博客介绍了一些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

email

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

时间: 2024-09-12 19:11:05

Rails测试《四》实战单元测试unit test的相关文章

Rails测试《五》实战单元测试

用factory-girl替换fixtures来创建模拟数据 fixtures 在前面我们介绍了,rails的测试系统默认使用fixtures来创建模拟数据,这些数据以yaml的格式书写,放在db/fixtures文件夹中,每个model都有一个对应的文件,test/fixtures/users.yml. 在测试启动的时候这些fixtures中的数据会加载到测试数据库,并且加载到变量中,供单元测试和功能测试使用. 使用fixtures有几个不利的因素,使得他们处于不利的位置. 最主要的一个因素是

Rails测试《六》实战单元测试

用factory-girl替换fixtures来创建模拟数据2 上一篇我们介绍了factory-girl,这是一个很好的工具,可以用来替代rails中的fixtures,用来生成模拟数据. 它直观,易读,易读就易维护.最重要的一点是,它是面向model的,面向业务的,面向应用的,而fixtures模拟的数据是面向数据库的.但是我们的单元测试,功能测试,甚至将来要介绍的集成测试,都是面向业务的,从业务角度出发的测试,测试系统是否满足业务需求.所以好处显而易见了,相信大家在使用了以后会有一点感触.

Rails测试《三》功能测试functional test

功能测试functional test 在rails中,针对单个controller中的各个action进行的测试,叫做功能测试.controller处理web的请求,将请求的响应render到view中. 功能测试包括的内容 web请求是否成功? 用户是否被引导进入正确的页面? 用户是否成功的验证? 响应的模板中是否包含了正确的内容? 在给用户的view中是否显示了适当的内容? 功能测试分解 在使用rails g scaffold post或者rails g controller命令之后,会创

Rails测试《一》fixtures简介

简介 每个rails应用都包括三个环境: 生产环境 开发环境 测试环境 我们的测试就是跑在测试环境,如果测试涉及数据库,会在测试数据库进行操作.这样不会对生产环境和开发环境的数据造成影响. 我们先使用 rails new projects 命令来创建一个rails应用,默认会给我们创建一个projects目录,里面会包含一些默认的目录和文件.其中有一个文件夹test,里面将会放我们全部的测试相关文件. $ ls -F test/ fixtures/       functional/     i

Rails测试《十》不能错过的杂七杂八

今天来介绍一些杂七杂八的测试知识,但是它们是不能错过的. 首先来介绍一下常用的测试命令 rake test 运行包括单元测试.功能测试和集成测试在内的所有测试. rake test:units 运行所有的单元测试. rake test:functionals 运行所有的功能测试 rake test:integration 运行所有的集成测试. rake test:recent 运行最近修改过的测试. rake test:uncommited 运行所有未提交的测试.支持svn和git. setup

Visual Studio 中的单元测试 UNIT TEST

原文:Visual Studio 中的单元测试 UNIT TEST 注:本文系作者原创,可随意转载,但请注明出处.如实在不愿注明可留空,强烈反对更改原创出处. TDD(Test-Driven Development) 测试驱动开发是敏捷开发中的一项核心实践和技术,也是一种设计方法论.TDD的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么产品代码.单元测试是最基本的测试步骤.位于整个产品开发流程V模型的最底部.大致如图,在各种开发流程中RA&PSD完成后,无需底层基础,

Javascript单元测试Unit Testing之QUnit

QUnit是一个基于JQuery的单元测试Unit Testing 框架.虽然是基于JQuery但用来测试纯Javascript代码. 用来运行Javascript单元测试用例的html页面是这样的: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>QUnit test runner</title> <link rel="sty

《手机测试Robotium实战教程》目录—导读

作者简介 手机测试Robotium实战教程 杨志伟,从2011年开始接触移动端自动化测试工作,积累了丰富的自动化测试案例实战经验,擅长整合主流无线端自动化测试框架的运用.曾就职于知名外企RingCentral,负责Mobile自动化测试框架的开发和持续改进工作:现就职于网龙网络有限公司,负责BDD模式的运用和推广工作. 本书特色 国内第一本原创的Robotium图书 紧跟移动平台开发.测试的热点技术 全面讲解了用Robotium建立测试工程.测试项目搭建.自动化测试脚本编写.测试框架完善.Rob

《手机测试Robotium实战教程》——第2章,第2.1节JDK安装及其环境变量配置

第2章 测试开发环境搭建 手机测试Robotium实战教程 2.1 JDK安装及其环境变量配置 因为要用到Java语言,所以JDK是首先需要安装的.可以通过下面的链接,选择对应平台的JDK版本进行下载. http://www.oracle.com/technetwork/java/javase/downloads/index.htm. 本书所有的例子选择在JDK 8平台下进行. 运行下载的JDK安装文件,根据提示完成安装.在安装完毕后,设置环境变量.设置环境变量的目的是可以在任意路径下执行jav