独立维基和验收测试框架 Fitnesse 入门介绍
拓展阅读
junit5 系列教程
基于 junit5 实现 junitperf 源码分析
Auto generate mock data for java test.(便于 Java 测试自动生成对象信息)
Junit performance rely on junit5 and jdk8+.(java 性能测试框架。压测+测试报告生成。)
Fitnesse
完全集成的独立维基和验收测试框架
fitnesse
介绍
FitNesse 是一款用于指定和验证应用程序验收标准(需求)的工具。它充当了软件交付过程中不同利益相关者(专业领域)之间的桥梁。
其维基服务器使软件文档化变得简单。其测试执行功能允许您验证文档与软件之间的一致性,确保文档保持最新,并且软件不会出现回归问题。
为了使其正常工作,测试应该与业务代表一起在业务层面上定义。它们基本上是业务需求,以一种易于所有利益相关者理解的方式展示。当您的需求明确无误时,它们可以与您的应用程序自动验证。
为了使所有利益相关者都能轻松与FitNesse交互,需求可以通过Web浏览器创建和编辑。它就是一个维基!通过编写规范(也称为验收测试),您可以在团队(编程人员和非编程人员)中建立共同的理解。这在交付正确的系统方面非常有帮助。规范可以使用维基语法或富文本编辑器编写,因此不需要了解维基语法。
因为规范实际上可以执行,FitNesse提供了一种方法,即使对于非编程人员也可以演示应用程序是否按设计工作。这可以防止导致项目需求死亡的问题。FitNesse 的目标是在用户界面级别的下面运行,演示在给定应用程序的各种输入情况下,正确的结果被计算出来。在某种程度上,您可以将其视为应用程序的替代用户界面。
被说服了吗?在我们的两分钟示例中更深入了解FitNesse的工作原理。
如果您尚未这样做,请下载并安装FitNesse在您的计算机上。然后学习如何使用FitNesse维基编写验收测试。
Hello World
intro-demo 简体中文
下载
fitnesse-standalone.jar启动
在7979端口启动fitnesse
D:\Tools\fitnesse>java -jar fitnesse-standalone.jar -p 7979
十一月 10, 2016 3:36:46 下午 fitnesse.ConfigurationParameter loadProperties
信息: 未找到配置文件 (D:\Tools\fitnesse\plugins.properties)
正在引导 FitNesse,完全集成的独立维基和验收测试框架。
根页面: fitnesse.wiki.fs.WikiFilePage: FitNesseRoot
日志记录器: 无
认证器: fitnesse.authentication.PromiscuousAuthenticator
页面工厂: fitnesse.html.template.PageFactory
页面主题: bootstrap
正在解包 FitNesse 资源的新版本。请耐心等待...
**********************************************************
文件已更新为新版本。
请查看发布说明
http://localhost:7979/FitNesse.ReleaseNotes
以了解新功能和修复。
**********************************************************
在端口 7979 上启动 FitNesse
- 访问
localhost:7979
- 编辑页面
根据提示,直接点击【编辑】,然后在末尾添加页面名称,如【MyFirstPage】,然后保存。页面名称遵循WikiWord的命名规则。
返回页面即可看到添加的页面。
MAC 上测试
启动
houbinbindeMacBook-Pro:fitnesse houbinbin$ ls
fitnesse-standalone.jar
houbinbindeMacBook-Pro:fitnesse houbinbin$ pwd
/Users/houbinbin/it/tools/fitnesse
houbinbindeMacBook-Pro:fitnesse houbinbin$ java -jar fitnesse-standalone.jar -p 7979
十一月 10, 2016 10:17:24 下午 fitnesse.ConfigurationParameter loadProperties
信息: 未找到配置文件 (/Users/houbinbin/IT/tools/fitnesse/plugins.properties)
正在引导 FitNesse,完全集成的独立维基和验收测试框架。
根页面: fitnesse.wiki.fs.WikiFilePage: FitNesseRoot
日志记录器: 无
认证器: fitnesse.authentication.PromiscuousAuthenticator
页面工厂: fitnesse.html.template.PageFactory
页面主题: bootstrap
正在解包 FitNesse 资源的新版本。请耐心等待...
**********************************************************
文件已更新为新版本。
请查看发布说明
http://localhost:7979/FitNesse.ReleaseNotes
以了解新功能和修复。
**********************************************************
在端口 7979 上启动 FitNesse
添加页面 MyFirstPage
1、在 tools/properties 中设置页面类型为 test
2、编辑页面,添加以下内容:
!define TEST_SYSTEM {slim}
!path /Users/houbinbin/IT/tools/fitnesse/fitnesse-standalone.jar
!path /Users/houbinbin/it/tools/fitnesse/
!|HelloWorld|
|sayHello?|
|Hello|
内容解释:
Line 1: 使用FitNesse的slim模块,也就是使用网页的形式描述测试用例
Line 2: fitnesse-standalone.jar jar文件路径。
Line 3: HelloWorld.class class文件存放路径。
- HelloWorld.java
public class HelloWorld {public String sayHello(){return "Hello";}
}
通过命令编译后获得
$ javac HelloWorld.java
Line 4: 引入HelloWorld类
Line 5: 方法名称,带有?说明此方法为返回值,Line 6 为对应的返回值。如果只是age,则会调用对应setAge() 方法,下一行为设置的值。
测试
点击页面【测试】,结果如下
测试页面: 1 正确,0 错误,0 忽略,0 异常 断言: 1 正确,0 错误,0 忽略,0 异常 (0.530 秒)相关文章:
独立维基和验收测试框架 Fitnesse 入门介绍
拓展阅读 junit5 系列教程 基于 junit5 实现 junitperf 源码分析 Auto generate mock data for java test.(便于 Java 测试自动生成对象信息) Junit performance rely on junit5 and jdk8.(java 性能测试框架。压测测试报告生成。) Fitnesse 完全集成的独立维基和验收测试…...
AI 初创公司趋势:Y Combinator 最新批次的见解
总部位于硅谷的著名创业加速器 Y Combinator (YC) 最近宣布了其 2023 年冬季队列,不出所料,约 31% 的初创公司(269 家中有 80 家)拥有自我报告的 AI 标签。在这篇文章中,我分析了这批 20-25 家初创公司,以了…...
tts语音合成原理
TTS(Text-to-Speech,文本到语音)语音合成技术是一种将文本数据转换为可听见的语音输出的技术。它允许计算机和其他电子设备读出文字信息,使得用户可以通过听的方式接收信息。TTS技术在无障碍服务、智能助手、语音导航、有声读物等…...
轮转数组题解
链接:189. 轮转数组 - 力扣(LeetCode) 这个题目很简单,因为说到了 k 是一个非负数,那么我们就可以 求模的时候就不用考虑的下标还会越界了,往右边 移动 其实就是当前下标 ik ,为了保证它能头尾相接并且不越…...
sqllab第二十四关通关笔记
知识点: 二次注入 先埋一个炸弹,然后通过其他路径引爆它 查看界面发现是一个登录框,尝试进行登录框的注入发现这里不存在注入点 那么就注册一个新的账户吧 通过点击注册,进入注册面板,注册一个新的账户 用户名为 re…...
web前端之多行文本擦除效果、文本逐个显示或展示、创建元素标签、querySelector、createElement、appendChild、requestAnimationFrame
MENU 版本一(requestAnimationFrame)版本二(setTimeout)版本三(css) 版本一(requestAnimationFrame) 前言 window.requestAnimationFrame()告诉浏览器——你希望执行一个动画,并且要求浏览器在下次重绘之前调用指定的回调函数更新动画。该方法需要传入一个回调函数…...
一文解读ISO26262安全标准:功能安全管理
一文解读ISO26262安全标准:功能安全管理 1 安全生命周期1.1 概念阶段1.2 产品开发阶段1.3 生产发布后续阶段 2 安全管理的角色和职责3 安全活动的裁剪4 安全活动的评审5 安全活动的评估6 交付物 下文的表中,一些方法的推荐等级说明: “”表示…...
【华为OD机试】找座位【C卷|100分】
【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述 在一个大型体育场内举办了一场大型活动,由于疫情防控的需要, 要求每位观众的必须间隔至少一个空位才允许落座。 现在给出一排观众座位分布图,座位中存在已落座的观众,请计算出, 在不移…...
LarkXR上新了 | Apollo多终端与XR体验的优化创新
作为领先的数字平行世界产品技术提供方,「Paraverse平行云」一直致力于为企业和开发者提供企业级实时云渲染解决方案。其多终端接入产品LarkXR Apollo,基于底层Runtime技术,实现了在Windows、Linux、MacOS、Android、iOS等多种操作系统下&…...
车载电子电器架构 - 网络拓扑
车载电子电器架构 - 网络拓扑 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师 (Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自己。江湖一碗茶,喝完再挣扎,出门靠…...
2024蓝桥杯每日一题(DFS)
备战2024年蓝桥杯 -- 每日一题 Python大学A组 试题一:奶牛选美 试题二:树的重心 试题三:大臣的差旅费 试题四:扫雷 试题一:奶牛选美 【题目描述】 听说最近两斑点的奶牛最受欢迎,…...
Docker 笔记(五)--链接
这篇笔记记录了Docker 的Link。 官方文档: Legacy container links - Communication across links 目录 参考Legacy container linksConnect using network port mappingConnect with the linking systemThe importance of naming Communication across linksEnviro…...
如何处理Android悬浮弹窗双击返回事件?
目录 1 前言 1.1 准备知识 1.2 问题概述 2 解决方案 3 代码部分 3.1 动态更新窗口焦点 3.2 窗口监听返回事件 3.3 判断焦点是否在窗口内部 3.4 窗口监听焦点移入/移出 4 注意事项 4.1 窗口范围 4.2 空隙处的返回事件处理 1 前言 1.1 准备知识 1)开发环…...
高可用篇_A Docker容器化技术_II Docker环境搭建和常见命令
原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 Docker安装 Docker 要求 CentOS7 系统的内核版本在 3.10以上 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker 。 …...
Vue.js+SpringBoot开发食品生产管理系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 加工厂管理模块2.2 客户管理模块2.3 食品管理模块2.4 生产销售订单管理模块2.5 系统管理模块2.6 其他管理模块 三、系统展示四、核心代码4.1 查询食品4.2 查询加工厂4.3 新增生产订单4.4 新增销售订单4.5 查询客户 五、…...
Python面试笔记
Python面试笔记 PythonQ. Python中可变数据类型与不可变数据类型,浅拷贝与深拷贝详解Q. 解释什么是lambda函数?它有什么好处?Q. 什么是装饰器?Q. 什么是Python的垃圾回收机制?Q. Python内置函数dir的用法?Q…...
springboot 查看和修改内置 tomcat 版本
解析Spring Boot父级依赖 去到项目的根pom文件中,找到parent依赖: <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>${springboot.version}…...
003——移植鸿蒙
目录 一、顶层Make分析 二、添加一个新的单板 2.1 Kconfig 2.2 Makefile 2.2.1 顶层Makefile 2.2.2 platform下的Makefile 2.2.3 platform下的bsp.mk文件 2.3 编译与调试 2.4 解决链接错误 三、内核启动流程的学习 3.1 韦东山老师总结的启动四步 3.2 启动文件分析…...
罗马数字转整数-力扣通过自己编译器编译
学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两…...
深入解析JVM加载机制
一、背景 Java代码被编译器变成生成Class字节码,但字节码仅是一个特殊的二进制文件,无法直接使用。因此,都需要放到JVM系统中执行,将Class字节码文件放入到JVM的过程,简称类加载。 二、整体流程 三、阶段逻辑分析 3…...
多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度
一、引言:多云环境的技术复杂性本质 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时,基础设施的技术债呈现指数级积累。网络连接、身份认证、成本管理这三大核心挑战相互嵌套:跨云网络构建数据…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
腾讯云V3签名
想要接入腾讯云的Api,必然先按其文档计算出所要求的签名。 之前也调用过腾讯云的接口,但总是卡在签名这一步,最后放弃选择SDK,这次终于自己代码实现。 可能腾讯云翻新了接口文档,现在阅读起来,清晰了很多&…...
