http://localhost:8888/FitNesse.UserGuide.FixtureCode
幕后(我们没有看到的真相):夹具代码
先看下验证除法运算的测试表:
表略
当我们点击页面左侧的Test按钮时,到底发生了什么?什么被运行了?
第一步,FitNesse把测试表递交给Slim框架。(FitNesse仅仅是个构建在Slim框架上的wiki GUI界面)。
第二步,Slim寻找与测试表对应的夹具代码(也就是说夹具代码是Slim框架里的?我们向下看),并运行它。
第三步,夹具代码调用应用程序代码做实际的工作,然后它们把结果反馈给夹具。
第四步,Fit框架给FitNesse返回测试结果
第五步,FitNesse在页面上显示测试表单元里是现实红色呢?绿色呢?还是因异常发生而显示黄色。
什么是夹具代码?
夹具要怎么样理解呢,它们就是Slim用来处理测试表中数据的类。在测试表的顶格上的行写着它们的名称,示例如下:Division就是被Slim调用的夹具。
Java版的Division类:
…这类就不赘述了
Slim是如何利用夹具代码来处理测试表数据的?
上文展示的除法表就是一个示例,是很多测试表中的一种。Slim按行读取测试表里的数据,然后把除数和被除数的值使用设置函数赋给除法类里的字段。对每行来说,都调用除法类里的quotient()函数,这个函数返回值就是我们的希望得到的,除数除以被除数后的结果。简单来说就是,Slim调用setNumerator(10)和setDenominator(2),然后调用quotient()。结果被放回到除法测试表中,then你可以看到单元格颜色相应发生变化。
再点击一次Test按钮,查看表格中quotient?列下面预期输出所发生的变化。对每个预期输出的单元格来说,除法测试表将比较预期值和实际值。如果两者相等,单元格就是绿的,否则就显示红色,并把预期值和实际值都显示出来。如果Slim遇到个异常,或者不能找到夹具,字段,方法,它就显示黄色,并显示异常内容。
“稍微等会,那太简单了”- -
对的,你这么认为你就太DIAO了。在实际应用中,夹具代码可能不处理任何实际的工作(尽管一个除法操作只做了一丢丢工作)。夹具代码可能委托到真正的应用程序代码中去,而这个应用程序代码才是真正做事的。一般来说,夹具代码应该尽可能的简单。它应当仅仅是FitNesse测试表和等待测试的应用程序间的通道。