fitnesse初学

来源:互联网 发布:用户角色模型 java 编辑:程序博客网 时间:2024/06/02 21:25

13:57

老大问我,你用过fitnesse么,我以前听都没听过这个工具。

然后去网上搜,好像资料也不是特别多。老大也是从书上看到的这个工具。

然后找了几个文档,下载了jar包,运行起来了。

java-jar fitnesse-standalone.jar -p 8888

然后打开浏览器:

输入

http://localhost:8888/

页面起来了,不知道怎么用,网上也没有现成的资料。

然后看到如下的例子

点击左侧工具栏的Test按钮。FitNesse将运行表格中的测试数据,并返回测试结果,应该看到表格中 100/4 的计算错误.

如果左侧工具栏中没有Edit按钮,就点击Properties按钮,在出现的页面中选中Actions中的Edit项,再点Save Properties按钮。这样左侧工具栏中就应该有Edit按钮了。

点击Edit按钮,将出现Edit Page,找到 100/4那行,把结果24改为25,点击最低下的Save按钮。

再点Test,就可以看到全部测试通过了。

你可能想知道表格中的数据是如何测试的,表头的eg.Division是指eg包下的Division类,这个类可以在FitNesse安装目录下的fitnesse.jar中找到,源码如下

java 代码

  1. package eg;   
  1.   
  1. import fit.ColumnFixture;   
  1.   
  1. public class Division extends ColumnFixture   
  1. {   
  2.     public double numerator;   
  3.     public double denominator;   
  4.     public double quotient() {   
  5.         return numerator/denominator;   
  6.     }   
  7. }  

可以看到对应表格中的第2行表头,类中有numerator, denominator, quotient(), 有点明白了吧。

下面新建一个测试页

Edit刚才的A Two-Minute Example

在内容的最下面,添加文字MyNewPage,然后点击Save

在新页面的最后,将出现刚才添加的MyNewPage字样,并在其后紧跟一个 ? 号,点击 ? 号。

将出现MyNewPage的编辑页面,继续使用eg.Division,添加如下内容

My New Test

|eg.Division|

|numerator|denominator|quotient?|

|10      |2         |5        |

|30     |5         |6       |

点击Save按钮,将看到新的MyNewPage,再点Test按钮(如果没有Test按钮就点击Properties来添加),将看到新的测试结果。

 

源文档 <http://wangcheng.iteye.com/blog/102137>

 

因为这个例子是系统自带的,不需要写代码,于是我新建了个页面

点击Edit, 在最后一行加入MyNewPage,然后保存。去主页

就有个MyNewPage,点击问号,就进页面了。

然后加上:

!contents-R2 -g -p -f -h

MyNew Test

|eg.Division|

|numerator|denominator|quotient?|

|10       |2          |5        |

|30      |5          |6       |

|30      |5          |4       |

然后去让,发现没有test按钮,然后在Tools/properties中加入Test.保存后test按钮就出来了,

点击test,就测试通过了。好了,终于知道怎么跑的了。

 

然后看到了个例子

  1. package fitnesse.slim.test;  
  1.   
  1. import java.util.List;  
  1.   
  1. public class ShouldIBuyMilk {  
  1.     private int dollars;  
  2.     private int pints;  
  3.     private boolean creditCard;  
  4.   
  5.     public void setCaseInWallet(int dollars) {  
  6.         this.dollars = dollars;  
  7.     }  
  8.   
  9.     public void setPintsOfMilkRemaining(int pints) {  
  10.         this.pints = pints;  
  11.     }  
  12.   
  13.     public void setCreditCard(String valid) {  
  1.         if (valid == "yes")  
  1.             creditCard = true;  
  2.         else  
  3.             creditCard = false;  
  1.     }  
  1.   
  1.     public String goToStore() {  
  1.         if (pints == 0 && (dollars > 2 || creditCard))  
  1.             return "yes";  
  1.         else  
  1.             return "no";  
  2.     }  
  3.   
  1.     public void execute() {  
  1.     }  
  1.   
  1.     public void reset() {  
  1.     }  
  2.   
  3.     public void table(List<List<String>> table) {  
  4.     }  
  5.   
  6. }  

编写好程序后,我们可以返回之前的fitnesse页面了,找到FirstTest页面,点击edit,在页面中添加下面一段内容:

!defineTEST_SYSTEM {slim}

 

!pathD:/fitnesse/fitnesse-standalone.jar

!pathD:/workspace-sts/test/bin/fitnesse/slim/test

 

!|import          |

|fitnesse.slim.test          |

 

!|fitnesse.slim.test.ShouldIBuyMilk         |

|cash inwallet|credit card|pints of milk remaining|go to store?|

|10      |no          |1     |no|

|12    |yes          |1      |no|

|100     |no          |0     |yes|

 

解释下:

第一行:使用FitNesseslim模块,也就是使用网页的形式描述测试用例

第二行:jar包所在的路径(这里要说明下,我看到网上很多例子是没有这一行的,但是我使用的时候发现,没有这一行会报错:java.lang.NoClassDefFoundError:fitnesse/slim/SlimService,可能是路径的问题吧,我是把fitnesse和我java程序所在的地方分开放的)

第三行:测试类**.class所在的路径

第六行:测试类的名称,fitnesse.slim.test package下的ShouldIBuyMilk这个类

表头:cash in wallet, credit card,pints ofmilk remaining对应类中的setNumerator(),setCreditCard(),setPintsOfMilkRemaining()这三个方法,goto store对应String goToStore()()这个方法,注意go to store后面有个问号,说明这个方法是有返回值的。

 

点击save按钮,返回该页面,点击test,可以看到测试页面。

 

源文档 <http://blog.csdn.net/funi16/article/details/8985280>

 

然后在本地新建一个java文件,把代码拷进去,相对应的路径改下,然后保存。

运行结果通过了。

<testpage>

 

!defineTEST_SYSTEM {slim}

 

!pathC:/Users/Lenovo/Downloads/fitnesse-standalone.jar

!pathD:/eclipsecode/Fitnesse/src/fitnesse/slim/test

 

!|import           |

|fitnesse.slim.test           |

 

!|fitnesse.slim.test.ShouldIBuyMilk          |

|cashin wallet|credit card|pints of milk remaining|go to store?|

|10       |no          |1    |no|

|12     |yes          |1      |no|

|100      |no          |0    |yes|

 

然后晚上回家的时候,翻墙搜到了老外用fit调用webdriver,还看到福建一家伙用jekins集成fit.

然后跟老大说,老大说我们用不到。

等我有空,也来研究一下巴。

0 0