使用Selenium和Castle进行测试驱动开发

上一篇 / 下一篇  2012-03-26 14:47:46 / 个人分类:Selenium

51Testing软件测试网xyU"ZLq-^

测试驱动开发(TDD,Test Driven Development)的例子大多是基于非常简单的单元测试。如何在大规模的应用中使用TDD常常是一项挑战。在本教程中,我们将展示如何使用Selenium和Castle以测试先行原理来构建一个Web应用。
5r#j-r1Kh6R0前期准备        比方说,开发者需要应用“测试先行”的思想,为应用程序编写一种带有以下特征的方法:
3vZB zSry5a7Ky0管理用户(添加新用户,删除,编辑用户资料,所有用户列表)51Testing软件测试网@#N/g4{0OY3e
        在该测试用例中,每个用户都必须拥有一个全名、一个用户名、一个密码和一个邮件地址等,所有的信息都是必须的。51Testing软件测试网a9|hN3e

51Testing软件测试网;gL1xgh1x1ns8q#C

基本步骤51Testing软件测试网[3x.?"zq} k
        典型的步骤如下:

hVP/~[051Testing软件测试网sk8[2pQJ!{W*pV

编写测试 确保测试失败 编写代码使测试成功 重构 重复以上步骤第一个测试51Testing软件测试网 G/rt2G[6I+H
        第一个要进行的测试是添加新用户的测试。测试驱动开发与其说是测试的技术不如说是设计的技术,因为当编写测试的时候,我们将规定代码或页面的工作方式,这个过程就是设计。

1NZt3eX ~^051Testing软件测试网*L&P+O Peql7t!H Z

        对于添加一个新用户而言,像下面这样简单的表单就够了:

7R { Q8i$G`!iz&vq[051Testing软件测试网aOx HWHg,xtF

        对于功能测试,开发者需要打开添加页面(准备阶段),填写表单并保存(执行阶段)和确认用户是否被保存了(项目的确认阶段)。为了做到这一点,开发者需要更新页面,在左侧添加一个新的包含用户信息的列表,以便在点击“保存”按钮后可以验证用户存在与否。51Testing软件测试网u3Q.fe:^`E

51Testing软件测试网#p$x$k+gKz


.xAV%j3^-o0使用Selenium51Testing软件测试网s0G7|-X9a*YUS L
        对于像这样的工作,开发者需要一个能够适合他们的执行这个行为的工具。Selenium在浏览器中可以方便地做到这一点,它也是一个很好的开源工具,可以根据你自己的需要进行修改。Selenium提供了基于Web的功能测试,而且只需要一个为开发人员运行这些行为的编译器,Selenium就能使这些测试的编写过程像HTML测试那么简单:51Testing软件测试网oh.O7a?~ ?

XgFM}H6JU,}$E051Testing软件测试网7D5\2b^j#D5T8Ut(G
        对于希望将自己的测试整合到一个持续集成的工具中的开发者而言,最大的喜讯莫过于,他们可以用自己喜欢的语言(如C#、JAVA、VB.NET、Ruby或者Python等)来编写测试,并利用Selenium的一个名为Selenium RC的扩展实现整合。51Testing软件测试网v%^\s"MYA

51Testing软件测试网]5U\ {-]2P#Z$e.R

 51Testing软件测试网g[Y/D3~/co2Yp$Z

#q m l \.B0cJm0比如使用 Selenium RC时,该测试的.NET版如下:51Testing软件测试网6N GT/w`

(g1o,Q:i`f~0 

y3tsx [V~6P+b051Testing软件测试网`1f*W'D1l3`[


FTf7ij0第二步,保证初始的测试失败
i/T)v@ P5q/w.}0        在这一阶段开发者没有写任何代码,因此测试失败。 首先启动Selenium RC服务器(一个处理Selenium指令并将它们传送给浏览器的小型java服务器):51Testing软件测试网ENvgh3N

9j!w3k*R fiK0
mHr,{GM0>java -jar selenium-server.jar

p@}~@$[?0

&m9V4wd&N _$k0意料之中,运行的测试失败:

L|9o9p)a051Testing软件测试网E1x1lkY*s$]"[?

 

AN%Ca?M;_J@&V051Testing软件测试网$o'aSY1M [UZy t

51Testing软件测试网U%fHVk Rx
这是一个好现象,因为这意味着测试在应该失败时失败了。否则这次测试就没有起到任何作用,是毫无意义的。51Testing软件测试网*Jb/ED;r3T

+sUn1yMCrN/B0
p,iS]*lY T#]{L0第三步,编写代码51Testing软件测试网 X)H0u g tu _!bS
        在TDD实施步骤的第三步中,开发者需要编写代码。这意味着当反向测试时,代码应该不会运行失败。下一步建立User控制器,然后建立视图并运行测试:

-U(_t/aP051Testing软件测试网'A6q)Jh'v.t:f,c#x

 51Testing软件测试网w)A2Nw1l5c

51Testing软件测试网Y0_ dp R XzX2Mo

 

-^%a9][Xj/Ro051Testing软件测试网 mdweCq


e%x+au.X,H0接着再建立一个空的add.vm,并且重新运行该测试:

!U-~/E4ef8}0

TAG:

 

评分:0

我来说两句

Open Toolbar