摘要:
使用Cucumber+Rspec玩转BDD(1)——用户注册2009年2月22日 星期日### 引言 ### 测试驱动开发的美名即TDD(Test-Driven Development 的缩写);顾名思义,就是利用测试来驱动程序的设计及其实现。在这一过程中,先写测试程序,然后再编码使其通过测试,经过几次反复的迭代后,使得程序的实用性达到开发人员的理想需求。 Rspec是一种实现BDD的工具,倡导在编写测试的同时描述代码的行为,BDD即行为驱动开发(Behaviour-Driven Development),从TDD进化而来,算是TDD的一个分支,使用Rspec编写的测试代码更加灵活也更具有趣. 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(3)——用户登录2009年3月7日 星期六### 温故知新 ### 在前面的两篇文章中,笔者向读者朋友们分别演示了用户注册和注册用户通过邮件激活帐号的开发过程。当用户注册成功并激活帐号后,系统应该可以让用户登录站点,这就是我们接下来的活儿。 为了获得更好的阅读体验,读者朋友们可以在这里下载源码:http://github.com/404/bdd_user_demo/tree/master### 新建工作分支 ###$ git checkout -b user_login### 用户登录功能 ### 1. 提供一张表单,方便用户输入帐号和密码,帐号可以 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(2)——邮件激活2009年3月2日 星期一### 温故知新 ### 前面我们已经完成了新用户注册功能的开发,为了方便我们后面的开发工作且不扰乱之前的工作成果,我们先将这份源代码归档并做个标记。 为了获得更好的阅读体验,读者朋友们可以在这里下载源码:http://github.com/404/bdd_user_demo/tree/master### 提交工作成果到GIT仓库 ### $ cd ~/code/user_demo $ git init $ git add . $ git commit -m"A user can be able t 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(4)——用户登录并“记住我”2009年3月13日 星期五### 温故知新 ### 在上一篇文章中,我们参照文章内容完成了用户登录功能的开发工作。此时,注册用户可以顺利登录站点,查看用户资料等等;但这一状态也只限于当前的浏览器窗口,如果浏览器关闭了,用户重新打开浏览器下次访问的时候,还是需要来到登录页面进行重新登录。若不是做交易支付型站点,为了追求好一点的用户体验,我们可以给用户预留一个可选项;用户在登录的时候可以勾选“记住我”,一段时间内用户将不必重新登录。要实现用户的这种持久登录状态,我们应该怎么做呢?不妨来了解我们接下来的活儿。 为了获得更好的阅 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(6)——找回密码2009年3月22日 星期日### 温故知新 ###用户登出后,过了一段时间再次登录的时候,有时候会忘记密码,这时候系统就得有个找回密码的功能,可以让用户在不用登录的情况下重设密码。对于一个存在的帐号,有且只有一个用户可以修改密码,这个用户必须是此帐号的拥有者;那么,系统怎么知道这个用户就是该帐号的所有者呢?答案是通过用户注册时填写的电子邮件来重建帐号和用户之间的关联。试想,如果一个用户曾经注册过,他必须填写了有效的电子邮件地址,而且还通过这个邮箱激活过帐号。那么,当注册用户忘记密码后,我们依然可以借助用户注册时填写的邮箱如法炮制,即 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(5)——安全退出2009年3月20日 星期五### 温故知新 ###为了保护用户的隐私,限制特定资料的访问,前面我们给系统增加了登录功能;紧接着,又为了方便用户在一段时间之内不必重复登录操作,我们实现了用户的持久登录状态,即“记住我”功能。如果浏览器未关闭,或者用户一直处于在线状态,而用户自己并没有使用这台设备,很显然,这对用户的帐号是非常危险的;基于此,系统应该提供一个给用户手工注销在线状态退出站点的功能。为了获得更好的阅读体验,读者朋友们可以在这里下载源码:http://github.com/404/bdd_user_demo/tree/mast 阅读全文
摘要:
使用Cucumber+Rspec玩转BDD(7)——测试重构2009年4月5日 星期日### 温故知新 ###在前面的六个章节中,我们循序渐进地完善了一个用户帐号系统,这样的系统一般都会作为一个独立的模块交付。在交付这个模块之前,还需要进一步地做些重构工作。在这篇文章中,笔者将会围绕测试重构展开。源码下载:http://github.com/404/bdd_user_demo### 主要内容 ### 1. 测试环境本地化; 2. 归类 steps; 3. 用 Factory_girl 代替 fixtures; 4. Steps Within Steps; 5. Helpers### 新建工作分 阅读全文
摘要:
这是David Chelimsky写的一篇RSpec简明指南,原文在这里。简介要了解RSpec,我们首先需要了解什么是行为驱动开发(Behaviour Driven Development,简称BDD),BDD是一种融合了可接受性测试驱动计划(Acceptance Test Driven Planning),域驱动设计(Domain Driven Design)以及测试驱动开发(Test Driven Development,简称TDD)的敏捷开发模型。RSpec为BDD开发提供TDD支持。通常测试Rails项目需要一下gems.1.cucumber ... 阅读全文
摘要:
Rails Rake指南ByYUANYI ZHANG|Published:JUNE 18, 2007这是Rails Envy网站的一篇Rake指南,你可以在这里找到原文。作为RoR开发者,你对Rake一定不会陌生,你可能用它来完成你的单元测试,也可能是迁移数据库,但是你真正理解这些Rake任务到底是怎么运作的吗?你有尝试过创建你自己的Rake任务吗?在这篇文章中,我们将会介绍Rake的由来,以及如何在Rails中使用它,通过这篇文章的学习,你将掌握如何使用Rake创建你自己的任务。为什么要有Rake要理解Rake,我们首先得来了解一下Rake的历史悠远的祖先:Make。因此我们需要暂且回到解释 阅读全文
摘要:
1.安装操作系统(Linux)经过实践,rails项目可以顺利在windows、linux(Ubuntu)、unix(solaris)下运行但推荐使用的平台仍是Linux,所以你至少需要熟悉以下内容安装我们开发环境使用的是Ubuntu,安装后请阅读速配指南了解ubuntu的基本配置Ubuntu安装Ubuntu速配指南熟悉常用命令Linux常用命令常用命令联合使用安装xp虚拟机安装xp虚拟机操作系统是为了使用rtx、使用ie访问项目,具体步骤:安装virtualbox宿主操作系统为”Ubuntu 8.04 LTS”,按电脑的cpu架构选择i386或者AMD的virtualbox安装包在virtu 阅读全文
摘要:
出现的问题.1.一上来就想 应该先用 svn add * 将 项目 目录 添加为 需要用svn上传的目录错误提示: svn : "."不是工作副本solution: 用 svn checkout 。。。 先checkout 当前本本2. svn commit验证错误,由于我的ubuntu用户名和google code 一样,导致糊涂。第一个提示是 ubuntu的用户名密码,第二三次才是google code 上的用户名和密码。总结:1.使用一下命令,初始化本地。svn checkout https://projectname.googlecode.com/svn/trunk 阅读全文