单体测试指南-1
上一篇 / 下一篇 2012-07-26 13:40:33 / 个人分类:杂谈
]w6F3aE9z7b0 1、单体测试应该小并且快51Testing软件测试网d)d eS JwRz
51Testing软件测试网y#D7O gLwT+P理想情况下在每次代码签入之前都要执行下测试套件。测试快就可以降低开发周转时间。
;k^G9^1u*I*X051Testing软件测试网as)W%p f-Zk[2、单体测试必须完全自动化,不需要交互
:e;iX+Xy Q051Testing软件测试网 b2PSU,hy|测试套件通常经常执行,必须完全自动化才有用。如果结果需要人工检查,该测试就不是真正的单体测试。
L[g nNZq z8\S051Testing软件测试网hR.`&V!?*Cr6vW N)h3、单体测试应便于运行
t$]g1\7J&jd9_z k03z&r6o(~B0 开发环境应该配置成通过一个单独的命令或者一个按钮点击就可以运行单独的测试和测试套件。
Nv7|7X4k)z09f |j3j$i+hJ2B0 4、评估测试
)ZL#zWK,Cl051Testing软件测试网-`~ kDq%W对测试的运行进行覆盖分析从而得到执行覆盖并调查代码的哪些部分执行,哪些部分没有执行。51Testing软件测试网hei,P*ycj
51Testing软件测试网Dh:| U0d.h&b.RZ5、立刻修复失败测试51Testing软件测试网n.BFF(v&dYQL p:P
51Testing软件测试网%J~$g(ynO每个开发者都应该确保在签入后新的测试以及所有既有的测试都可以成功运行。51Testing软件测试网yP\$_ e.NN[
51Testing软件测试网*bP}OU+ev如果在日常测试执行中有一个测试失败了,整个团队必须停下手头的工作来保证问题得到解决。51Testing软件测试网H5}`3PDQ
d0s'i%kD^x0 6、保持测试在单体层
| h(Lh3?{:diA051Testing软件测试网0Eop-a sj3R oL单体测试和类的测试相关。每个普通类都要有一个测试类,类的行为应该在隔离的条件下测试。应该避免使用单体测试框架测试整个工作流程,因为这样的测试会很慢并很难维护。会有需要流程测试的地方,但不应该作为单体测试的一部分,它必须独立地设置和执行。
e#XfML9}0~0b)?\&\'E1}z0 7、从简单开始
8TgJ3i)A0XE8bE~051Testing软件测试网HWb5n:E%UfQ一个简单的测试要比根本没有测试好。一个简单的测试类可以建立起目标类的测试框架并可以验证编译环境、单体测试环境、执行环境和覆盖分析工具是否具备以及是否正确,从而可以证明目标类是否是程序集的一部分以及是否可以访问。51Testing软件测试网zD c3@M`
(xI!zxis7U W0 单体测试的入门程序可能像这样:
y&Y S"t+OQ0void testDefaultConstruction() y;v|W7_GU0{ n$N%q7EE(AM4~q0 Foo foo = new Foo();51Testing软件测试网GZ WCv*rR assertNotNull(foo);51Testing软件测试网;UP:\R2e;Vu } |
8、保存测试相互独立
c5[g}'lD0koT4A4~s P,{7`1t1]0 为了确保测试健壮并简化维护,测试不能依赖其它测试以及测试执行的先后顺序。
S;{XH~'T*Fe0,|"wS Q'w9@J7u0 9、测试类和被测试类尽量近51Testing软件测试网a3[vK!s3~
51Testing软件测试网eR]5k:_c7TZe;V如果被测试类是Foo,那么测试类就应该命名为FooTest(而不是TestFoo)并同Foo放在同一个包里面。将测试类放在单独的目录下会使其难于访问和维护。51Testing软件测试网L*W(b D:mbN#[N6o
51Testing软件测试网[E7H$l&rj7F确保编译环境的配置可以使得测试类不会进入生产库或执行文件中。
6Gi}X0e7l`6\051Testing软件测试网0JC9u?-p)@10、合理命名测试