fitnesse初学
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 代码
- package eg;
- import fit.ColumnFixture;
- public class Division extends ColumnFixture
- {
- public double numerator;
- public double denominator;
- public double quotient() {
- return numerator/denominator;
- }
- }
可以看到对应表格中的第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,就测试通过了。好了,终于知道怎么跑的了。
然后看到了个例子
- package fitnesse.slim.test;
- import java.util.List;
- public class ShouldIBuyMilk {
- private int dollars;
- private int pints;
- private boolean creditCard;
- public void setCaseInWallet(int dollars) {
- this.dollars = dollars;
- }
- public void setPintsOfMilkRemaining(int pints) {
- this.pints = pints;
- }
- public void setCreditCard(String valid) {
- if (valid == "yes")
- creditCard = true;
- else
- creditCard = false;
- }
- public String goToStore() {
- if (pints == 0 && (dollars > 2 || creditCard))
- return "yes";
- else
- return "no";
- }
- public void execute() {
- }
- public void reset() {
- }
- public void table(List<List<String>> table) {
- }
- }
编写好程序后,我们可以返回之前的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|
解释下:
第一行:使用FitNesse的slim模块,也就是使用网页的形式描述测试用例
第二行: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.
然后跟老大说,老大说我们用不到。
等我有空,也来研究一下巴。
fitnesse初学相关推荐
- Android初学第36天
Android初学第36天 12_DateDialog 代码 CrimeLab.java package com.bignerdranch.android.criminalintent;import ...
- Unity初学Shadergraph创建着色器学习教程
MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:51节课(4h 44m) |大小解压后:2.55 G ...
- 初学web标准的几个误区
初学web标准的几个误区 作者:阿捷 2004-7-7 11:37:11 非常高兴地看到很多设计师开始关注和尝试使用web标准制作网页.但从网友们的问题和制作中发现几个问题,在这里特别提醒一下: 1. ...
- java基础入门传智播客 源码_Java-_2020年版Java零基础视频教程(Java 0基础,Java初学入门)魔鬼讲师老杜出品...
不会闲聊!!!不会扯淡!!!小UP只会分享与Java相关的学习资源 还记得那年带你Java入门的一声"吼"吗? B站目前播放量已经快到450多万播放量的Java零基础教程的创作者& ...
- 介绍并扩展Fitnesse的测试模块化机制:Scenario
2019独角兽企业重金招聘Python工程师标准>>> 首先普及一下概念,什么是Fitnesse,听一听.NET版Cucumber的创始人Aslak Hellesøy谈Fitness ...
- 初学api测试_面向初学者的API-在此免费视频课程中学习如何使用API
初学api测试 What exactly is an API? How do you use an API? We've just published a full beginner's course ...
- java web开发初学_2018年学习Web开发的绝对初学者指南
java web开发初学 This post was originally published on Coder-Coder.com. 该帖子最初发布在Coder-Coder.com上 . If yo ...
- 初学python的30个操作难点汇总(入门篇)希望对你有帮助
初学Python的人总会遇到这样或者那样的问题,在我学习Python的这段时间我总结了自己的29个问题,具体如下: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的 ...
- 初学架构设计的第一步:需求、愿景与架构
初学架构设计的第一步:需求.愿景与架构 了解<需求>.<愿景>与<架构>三者的关系.也就是<需求分析>.<观想愿景>与<架构设计> ...
最新文章
- 用于在公网环境下测试的Telnet/SSH服务器
- Java11正式发布了,我们该怎么办?
- 音乐游戏 简单模拟,字符串,cin.get,getchar,流同步(女赛)
- eureka 其它语言_SpringCloud之Eureka-Go语言中文社区
- java 编译开关_Java开关盒字符串
- CV进阶 -- 目标检测原理及代码实现、YOLO源码解读学习
- css3 修改checkbox disabled颜色_HTML5 + CSS3 gt;gt;gt; 009
- 凸优化第七章统计估计 7.3最优检测器设计及假性检验
- linux开发windows游戏,安装Wine 1.9.19(开发版)在Linux上运行Windows游戏和应用程序...
- linux中rar文件包的解压方式
- Python中迭代函数chain
- 软件开发成本构成及评估
- 98% after emitting CopyPlugin问题
- Protein-protein interaction site prediction through combining local and global features 文章梳理
- 【飞桨PaddleSpeech语音技术课程】— 一句话语音合成全流程实践
- 反色(顺序)C C++
- ping 不通。无法访问目标主机
- 2022-2028年中国教育行业市场行情动态及投资潜力研究报告
- sqlServer——CONCAT()字符串拼接函数使用
- imx6q调试android7问题Unrecognized filesystem type Bad Linux ARM zImage magic!
热门文章
- c++ hls协议 m3u8解析器
- 2023数学建模美赛赛题思路分析 2023美赛 美国大学生数学建模数模
- 80后上什么大学重要吗?看看这些IT富豪吧
- 中海达ihand30手簿使用说明_中海达Hi-RTK软件(iHand手簿)说明书
- 正胶显影液/正胶稀释剂/SU8 显影液/RD-HMDS/OMNICOAT光刻胶配套
- 【mpvue】小程序开发入门
- 圣斗士星矢服务器维护时间,圣斗士星矢手游8月2日服务器内BUG说明公告
- native Vlan
- 从零开始写STM32平衡小车代码,从0到1
- tcl43f3390-3d安卓(android)软件,TCL L43F3390A-3D通过U盘安装沙发管家教程