概述51Testing软件测试网p)j1E u/?
IbD
Watin是做一个UI自动化测试工具进行开发的而非单元测试工具。但并不意味着单元测试中不可以使用Watin。有时候作为纯粹单元测试的补充,适当的UI测试也是必要的。在VSTS单元测试工具和Watin结合使用具有很多。
'o|@j F[? i01) VSTS测试工具提供了良好的运行和结果查看工具以及其它强大的功能
F8OTW2F#?+I{02) MSunit具有丰富的断言语句进行结果判断51Testing软件测试网g9gq8O0n)Q$l}
3) 可以在单元测试代码中穿插VSTS web测试代码,以丰富Watin的UI测试51Testing软件测试网%t_ Mn'V!~'[/t
~:Ea
4) Watin进行UI测试可以使单元测试更直观易懂。
d9a$r1?7k0o7@3a0
^K a N
T-YT"Y0 VSTS中使用Watin的大体步骤
mi)jaP01) VSTS中创建测试项目,然后创建单元测试51Testing软件测试网6~7eU3W*XPV
2) 测试项目中引用WatiN.core,创建StaticBrowserInstanceHelper类51Testing软件测试网-[^$?%K,k;W~J7S
3) 编写测试代码,加入断言51Testing软件测试网d"Ju%K6M K-k/C-T0j
4) 运行测试,查看测试结果
0N+E D9dE0 如何创建测试项目,如何创建单元测试这里就不赘述了,下面从第2步骤讲起。51Testing软件测试网g$e
r:n2P
51Testing软件测试网
T(F$~&ugb Q
为何使用StaticBrowserInstanceHelper类
#Dm9n@9\.D`2AEDc0 在第二步骤中创建了StaticBrowserInstanceHelper类(该类代码在附件中)。创建这个类没有别的目的,就是解决一个在VSTS中运行watin会出现的一个问题。按照平常思路,我们直接创建单元测试,在其中编写测试代码,如下:
Lc qM5F6f0 //定义静态IE对象51Testing软件测试网lwIV$g+g privatestaticIEie;51Testing软件测试网T
n`*t1{c(_H
v //单元测试初始化 C*LO!A Q
p(A+p0 [ClassInitialize]51Testing软件测试网(Baw)i/\{[9i w-z publicstaticvoidtestInit(TestContexttestContext) "S
MBX#X3Js0 {51Testing软件测试网 DrTEpi ie =newIE("http://baidu.com"); sg8Y6ZvQ0 } &\*Mp7p8}*Lh;XO3C0[TestMethod] -P
ux^t;F4B!{/N9pT0[TestMethod]51Testing软件测试网c}[+od
F`r ………51Testing软件测试网X7@+nF g!vX |
使用上述编写代码思路是对的,但是会出现一个问题(Watin本身的问题),运行第一个测试方法可以通过,其他测试方法均为失败。大家可以自己试一下,确实是这样。所以Watin开发人员给出了解决方案是编写一个StaticBrowserInstanceHelper类用于解决这个问题。你在编写初始化代码时,就可以这样写
{BW9{
N9ib0
$Pl4?osO:|0 staticStaticBrowserInstanceHelper<IE> ieStaticInstanceHelper;51Testing软件测试网h&_:C OX [ClassInitialize]51Testing软件测试网"u#L\+N
k4kMJi publicstaticvoidtestInit(TestContexttestContext) tJg$PP'S0 { "J5sJ6X3c\&D0 ieStaticInstanceHelper =newStaticBrowserInstanceHelper<IE>(); @"S;f2[8UB0 ieStaticInstanceHelper.Browser =newIE("http://baidu.com");51Testing软件测试网7q4D-g^T }51Testing软件测试网2ky^2V[/o%A4Fb'Q publicIEIE51Testing软件测试网!qJ+k$D#f%P {51Testing软件测试网)N5b)ZCcs6B get{return(IE)ieStaticInstanceHelper.Browser; } :@+u;`
w@0GH:iE0 set{ ieStaticInstanceHelper.Browser =value; } :U8e}.wV z[gA0 } 3z0L-q$i j'c0 [ClassCleanup] .J@ p9DLS.@0 publicstaticvoidMyClassCleanup()51Testing软件测试网3L4o7taN$SF {51Testing软件测试网M8v7hRLM ieStaticInstanceHelper.Browser.Close();51Testing软件测试网,S*R._rIf ieStaticInstanceHelper =null;
V1zGsD0}51Testing软件测试网7Wa(]9Mc%L3Z [TestMethod] d9gq(y8pE.ZwhG1u+J0[TestMethod]51Testing软件测试网/h n4e8kP.dfj5Ts3{ |
51Testing软件测试网S+YLr\(b
编写测试代码,加入断言
B%x8k P5]0 单元测试初始化准备代码编写之后,就可以编写测试方法了。以百度页面为例来演示测试代码编写。51Testing软件测试网Mo:|r5R*Z5k#}
验证页面是否存在指定文本文字51Testing软件测试网%eT
H$Thk}
[TestMethod] 8jI#V+db#a9?,p0 publicvoidtestOne() +S1Ex6Og0 { //页面是否包含“百科”文字51Testing软件测试网2z(}PC
n$V Assert.IsTrue(IE.ContainsText("百科"));51Testing软件测试网q_W%o7G?!g } 7vd0|$TE0 |
验证页面中指定元素的Value是否正确51Testing软件测试网P6~ HN_;p1p4Fqr
[TestMethod]51Testing软件测试网COa*V&]\MF(] publicvoidtestThree() N+`Yk2YD0 { Jf C/S!A0L(Xb~0 Assert.AreEqual("MP3", IE.Link(Find.ByUrl("http://mp3.baidu.com/")).Text);51Testing软件测试网"T7s*V%Xj
H }51Testing软件测试网RB]5WGk |
51Testing软件测试网 UT$V2lA&eD
运行测试,查看测试结果
N#d QPzP0在测试列表编辑器中运行单元测试51Testing软件测试网
rmp4Cq0l
?
51Testing软件测试网FY1Ok GA
d+J.eN X"m6ct0勾选需要测试的测试方法后,右键菜单中选择“运行选择的测试”进行测试。然后开始运行测试。测试运行结果后,会在“测试结果”面板中列出测试结果,如下51Testing软件测试网kR6K8aBP
51Testing软件测试网F SG9y$oW0?
E
双击每项测试结果可以查看测试详细信息。
g*I@-@v0 51Testing软件测试网i*g,Q
P`&s
至此,在VSTS测试中使用Watin的整个过程就是这样。限于篇幅限制,只能对大体的过程做些简单的介绍。
1BUv;? Q,F0
hv)|"{RNf0