Jbehave 学习

合集下载

java web开发要学什么

java web开发要学什么

java web开发要学什么1.HTML+CSS+DIV,前端会用到,作为研发人员至少应该会简单写些页面出来,这是许多编程语言都必须要了解的基础。

2.JAVASCRIPT,想要使用一些特别的效果就必须要这个了,但是你并不必须要很精通,当你必须要用到JS的地方可以用Jquery 代理,Jquery很好学,很有用的JS框架,看似复杂华丽的效果他都能轻松完成。

3.Ajax,前端异步交互技术,值得去研究4.JSP,Servlet,Javabean,发展至今已经不提倡在JSP里嵌入JAVA代码,所以仅仅是作为视图层使用,嵌入些如JSTL和Struts2标签库的标签成为动态页面。

Servlet是应该重点学习的,包括如过滤器、监听器等,这些都是当下Struts2或者将来WEB框架的底层基础和原理。

5.Strut2+Hibernate(or JPA)+Spring,当下十分流行的开发框架。

其实是很容易上手的,但关键是必须要懂得原理。

6.Web Service技术,它能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可互相交换数据或集成。

依据Web Service规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以互相交换数据。

2怎么学习java学好集合框架java描述复杂数据结构的主要方式是集合框架。

Java没有指针,而是通过强大的集合框架描述数组、对象数组等复杂的数据结构。

学好这些数据结构的描述方法关于应用程序编写,特别是涉及到服务器方、3层结构编程至关重要。

程序员在这个时候不能再用诸如数据库结果集之类的结构描述数据了。

由于很多语言没有这么强大的集合框架体系,很多初学者不知所措,更不知道拿来做什么用,因此应该引起足够的重视。

例外捕捉java对例外捕捉的强调是空前的,它强迫程序员用显著的与逻辑方法完全不同的方式描述例外捕捉,关于程序描述的完整性和严谨性有很大的意义。

c++也有类似的机制,但是我们看到很多c++程序员并不习惯使用这些机制。

Java2语言及应用开发技术培训教学课程

Java2语言及应用开发技术培训教学课程

1.1Java2语言及应用开发技术培训教学课程
1、课程简介
Java以其独有的开放性、跨平台性和面向网络的交互性席卷全球,以其安全性、易用性和开发周期短的特点,迅速从最初的编程语言发展成为全球第二大软件开发平台。

学员经过本课程模块的系统培训学习,将帮助软件开发人员掌握Java编程语言、J2SE应用开发技术、并最终掌握J2EE Web开发技术。

2、学习基础
本课程适用于熟悉C或C++的编程人员,也适用于想参加Sun Java认证考试的学员。

3、培训目标:
在讲课过程中贯穿案例,帮助软件开发人员学会如何使用基于JDK5.0的面向对象的Java语言、异常处理、文件I/O 、反射和JDBC等方面的内容,并能够进行一般的Java应用程序的开发。

经过本课程的系统培训,您将成为J2SE应用编程的高级程序员,同时也为进一步学习J2EE Web编程提供基础。

4、培训时间
7天,56学时。

上午(8:30--11:45,4学时)、下午(1:00--4:15,4学时),人手一机,边学边练、逐步深入!强调独立实践操作能力、实例讲解。

5、培训内容(可根据具体学员的基础进行适当调整,以便学员能够快速接受)。

J2EE学习中一些值得研究的开源项目和J2EE全攻略

J2EE学习中一些值得研究的开源项目和J2EE全攻略

这篇文章写在我研究J2SE、J2EE近三年后。

前3年我研究了J2SE的Swing、Applet、 Net、RMI、Collections、IO、JNI......研究了J2EE的JDBC、Sevlet、JSP、JNDI…..不久我发现这些好像太浮浅了:首先,我发现自己知道的仅仅是java提供的大量的API,根本不能很好地使用它;其次,我根本就没有学到任何有助于写程序的知识,此时我也只不过能写个几页的小程序。

出于这个幼稚的想法我研究了JDK中Collections、Logger、IO…..的源代码,发现这个世界真的很神奇,竟然有如此的高手――利用java语言最最基本的语法,创造了这些优秀的Framework。

从此一发不可收拾,我继续研究了J2EE的部分,又发现这是一个我根本不能理解的方向(曾经有半年停滞不前),为什么只有接口没有实现啊!后来由于一直使用Tomcat、Derby等软件突然发现:哦!原来J2EE仅仅是一个标准,只是一个架构。

真正的实现是不同提供商提供的。

接着我研究了MOM4J、OpenJMS、Mocki、HSQLD……发现这些就是J2EE 的实现啊!原来软件竟会如此复杂,竟会如此做….规范和实现又是如何成为一体的呢?通过上面的研究发现:原来J2EE 后面竟然有太多太多理念、太多太多的相似!这些相似就是其背后的理念――设计模式!(很幸运,在我学java的时候,我一般学java的一个方向就会读一些关于设计模式的书!很幸运,到能领略一点的时候能真正知道这是为什么!)其实模式就是一种思维方式、就是一种理念……模式是要运用到程序中的,只有从真正的项目中才能领会模式的含义……学得越多,发现懂得越少!在学习过程中发现一些很有用,很值得学习的开源项目,今天在此推荐给大家。

一、JavaServlet和JSP方向很多人都是从Servlet和JSP步入J2EE的。

它就是J2EE的表现层,用于向客户呈现服务器上的内容。

自学Java的学习路线

自学Java的学习路线

Java学习路线先学习j2se要学习j2ee就要先学习j2se,刚开始学习j2se先建议不要使用IDE,然后渐渐的过渡到使用IDE开发,毕竟用它方便嘛。

学习j2se推荐两本书,《java2核心技术一二卷》,《java编程思想》,《java模式》。

其中《java编程思想》要研读,精读。

这一段时间是基本功学习,时间会很长,也可能很短,这要看学习者自身水平而定。

不要被IDE纠缠在学习java和j2ee过程中,你会遇到五花八门的IDE,不要被他们迷惑,学JA V A的时候,要学语言本身的东西,不要太在意IDE的附加功能,JA V A编程在不同IDE之间的转换是很容易的,过于的在意IDE的功能反而容易耽误对语言本身的理解。

目前流行的IDE有jbuilder,eclipse和eclipse的加强版WSAD。

用好其中一个就可以了,推荐从eclipse入手j2ee。

因为Jbuilder更适合于写j2se程序。

选择和学习服务器使用配置当你有了j2se和IDE的经验时,可以开始j2ee的学习了,web服务器:tomcat,勿庸置疑,tomcat为学习web服务首选。

而应用服务器目前主要有三个:jboss、weblogic、websphere。

有很多项目开始采用jboss,并且有大量的公司开始做websphere或weblogic向jboss应用服务器的移植(节省成本),这里要说的是,学习tomcat和jboss我认为是首选,也是最容易上手的。

学习服务器使用配置最好去询问有经验的人(有条件的话),因为他们或许一句话就能解决问题,你自己上网摸索可能要一两天(我就干过这种傻事),我们应该把主要时间放在学习原理和理论上,一项特定技术的使用永远代替不了一个人的知识和学问。

学习web知识如果你是在做电子商务网站等时,你可能要充当几个角色,这是你还要学习:.'l:8SxT?L html,可能要用到dreamwave等IDE。

大连JAVAEE培训课程有什么

大连JAVAEE培训课程有什么

大连JAVAEE培训课程有什么学过了Java基础教程,相信你一定对Java已经有了一定的了解,度过了初入Java世界的难关,经历了最难的开始,供你你成功进阶,万事开头难,熬过了开头,成功还会远吗?继续干货分享:Java进阶视频教程送给大家。

再附上一份Java学习路线图,为你助攻!1.1 Java学习总体方向对于刚学习Java的同学,了解Java学习的大致结构。

当然你能在Orace Java的主页上看到还有如Java FX、Java DB这样的技术。

但是既然要和市场接轨,必然要有所取舍。

Java SE是我们Java入门的开端,这块内容也就是大家所熟悉的坦克大战、聊天软件、五子棋这些桌面级项目所组成的。

学完了Java SE部分,接下来就该选择方向了。

但这里有亮点需要提出:往分布式方向并不是一定要经过Java EE阶段,但是,学习Java EE对后续分布式的开发有莫大的好处。

Java ME虽然还在Orace官网上屹立,但就市场来看,它的地位已经明显不如adroid高了。

所以从目前来看,没有必要学习Java ME。

1.2 Java SE中应该关注的内容在这一节中,将列出Java SE的学习中应该关注的方面,以及这些方面里主要涉及哪些核心内容。

大家可以根据自己的学习情况,对照这些条目,看看有没有缺漏的内容。

在之前提到过如坦克大战这样的项目,这些确实能很好的涵盖了大部分Java SE的内容,所以必要的项目是很关键的。

Java SE大致可分为以下几块内容:对象导论:如何用面向对象的思路来开发深入JVM:Java运行机制以及JVM原理面向对象的特征:封装、继承、抽象、多态数组和容器:容器的线程安全问题I/O和IO:IO工作原理和应用并发编程:cocurret包网络编程:TCP/IP+BIO/IO UDP/IP+BIO/IOJDBC框架和反射:JDI、连接池、aotatio等其他:正则表达式、字符串等在这里我还想多提一点,关于Java SE学到什么深度才合适。

Java完全自学手册(适合初学者的简易学习文档)_华清远见

 Java完全自学手册(适合初学者的简易学习文档)_华清远见

Java完全自学手册(适合初学者的简易学习文档)近年来java初学者越来越多,但是相应的没有一个可供java初学的朋友一个免费的资料下载平台,华清远见对于这个问题,专门在华清远见的官网为大家设立了专门技术文章交流的平台供大家参考,我们也会随时分享含金量多的技术文章,先为大家分享一个java自学手册看看,更多资料可以访问华清远见官网。

1.1、【Java基础知识复习(面向对象)】1.1.1、【Java面向对象四个基本特点】抽象、继承、多态、封装1.1.1.1【抽象的概念】抽象是忽略一个主题中与当前目标无关的方面,把现实世界中的概念转换为对象,可以是表示数据的VO对象或抽象类,也可以是表示一类行为的接口。

有利于使用继承来构造类的体系,实现多态,使用模板和工厂模式方法来实现对业务过程的抽象。

抽象是概念建模和业务流程建模很重要的工具,是面向对象体系的基石,而不是一堆杂乱、混乱、重复、散沙般的、关系错综复杂的类。

1.1.1.1.1【抽象的使用】1.抽象在java中用关键字abstract表示2.抽象abstract可定义在类class的前面、如果定义类为抽象、则表示此类为一个抽象类、被抽象类所修饰的类类中的方法都是抽象方法3.通常抽象类中的方法没有具体的实现1.1.1.2【继承的概念】是一种连结类的层次模型,并且允许和鼓励类的重用,提供了一种明确表示共性的方法。

继承意味着能声明一个类型,而且能继承父类中的所有操作和数据,同事还有机会声明自己的新方法以改进、具体化、代替或者扩展父类中的方法使用父类为应用领域建立层次模型,提供代码重用并允许定制1.1.1.2.1【继承的使用】1.继承在java中用关键字extends表示2. Java中不支持多继承只支持单继承多实现3. extends写在类名后面4.一个类如果要防止继承请使用关键字final。

1.1.1.3【多态的概念】一种事物具有多种表现形态称为多态,一个对象变量可以指向多种实际类型的现象。

基于项目的学习(Project-based-learning)简介

基于项目的学习(Project-based-learning)简介

基于项目的学习(Project-based learning)简介对基于项目的学习介绍前,有必要了解一下它的产生与发展。

项目(过去一般译作“设计”)一词在教育领域的应用最初出现在美国。

1918年9月,杜威的学生,著名的教育家屈伯克,发表了《项目(设计)教学法:在教学过程中有目的的活动的应用》一文,首次提出了项目学习的概念。

在20世纪的二、三十年代,屈伯克的项目教学法在美国的初等学校和中学的低年级里得到了广泛的应用。

在农业和大工业时代,一般学习的目的仅仅限于文化知识的掌握。

传统的学习是把所要掌握的知识从具体的生活情景中提取出来,教科书和教师的传授成为最方便的方式。

学习者所学习的知识是被人为地删除了许多复杂因素,变得抽象、单一,这样虽然能让学习者一下子抓住本质、要点,但不利于学习者全面地了解知识的生活原形,一旦进入社会,面对复杂多变的现实问题,往往就束手无策了,更不用说创新了。

人类进入信息社会以后,随着知识经济的兴起,学习、掌握知识的目的更重要的是创造更多的知识和解决实际问题,用知识创造财富。

而基于项目学习正是一种创造性地解决实际问题的学习方式,它能从多个层面促进人的全面发展。

此外,当今信息技术、通讯技术的飞速发展,知识容量的猛增,仅仅靠教科书、教师的传授远远不够。

同时,在当今社会,学科之间的界限不再那么严格,出现了向更高层次整合的趋势。

故此,开展一种跨学科的、研究性的基于项目的学习是有必要的。

最后,在信息化社会,由于信息技术的发展,学习资源的极大丰富和信息获取的方便、快捷,也为基于项目的学习提供了一个良好的技术支持平台。

[1]一、基于项目的学习的定义在对“基于项目的学习”进行定义之前,首先有必要对“项目(Project)”有个大致的了解。

“项目就是以一套独特而相互联系的任务为前提,有效地利用资源,为实现一个特定的目标所做的努力。

”[2]“项目是创造特定产品和服务的一项有时限的任务。

”[3]可见,项目就是以制作作品并将作品推销给客户为目的,借助多种资源,并需在一定时间内解决多个相互关联着的问题的任务。

如何自学java迅速成为java高手

如何自学java迅速成为java高手

如何自学java迅速成为java高手很多网友咨询学习Java有没有什么捷径,我说“无他,唯手熟尔”。

但是尚学堂愿意将一些经验写出来,以便后来者少走弯路,帮助别人是最大的快乐嘛!要想学好Java,首先要知道Java的大致分类。

我们知道,自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是SunONE(Open NetEnvironment)体系。

J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入式系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站,OA系统和ERP系统。

J2SE开发桌面应用软件比起VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。

J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。

所以现在应用最广泛又最好学的就是J2EE了。

J2EE又包括许多组件,如Jsp,Servlet,Ja vaBean,EJB,JDBC,JavaMail等。

要学习起来可不是一两天的事。

那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。

如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。

其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。

然后你就该学一学Servlet了。

Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。

JSP在执行时,也是先转换成Servlet再运行的。

虽说JSP 理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。

接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?还好,SUN提供了Javabean可以把你的JSP中的Java代码封装起来,便于调用也便于重用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Jbehave 学习JBehave行为驱动开发(BDD)是一个框架。

BDD是测试驱动开发(TDD)和验收测试驱动开发(ATDD)的一种演进,目的是使新手和专家开发实践起来更加方便和直观。

它改变了从被测试为基础到以行为为基础的词汇,将自己定位为一个设计理念。

一、BDD课题研究之测试思想和方法总结此次研究的课题是BDD,主要涉及两个方面:测试的思想和方法、技术框架。

这里做测试思想和方法的总结。

BDD是什么全称: Behaviour Driven Development(行为驱动开发)。

BDD改变了我们对软件测试的认识。

先前我对测试的认识是:从大的角度来讲,软件测试就是对一个软件系统从功能上进行确认测试和验证测试,从性能上进行压力测试和负载测试,以及对系统的配置测试和兼容性测试等,从类别上又有单元测试,集成测试,回归测试,所有的这些测试工作都有一个目的:交付一套高质量的软件系统。

我们软件测试人员的工作就是:尽可能早的找出软件缺陷,并确保其得以修复。

顺理成章的,在我们的思维中是:我们先拿到系统的既成品,然后开展测试工作,而BDD恰好颠覆了我们的思维。

回到BDD正题,BDD中有两个大的概念:测试先行和系统设计。

测试先行:BDD提倡我们在开发者的编码工作开展之前,先写测试用例,然后由测试来推动着开发的工作,具体解释为:在设计如何实现一个功能前,先考虑如何测试这个功能,测试的代码完成后,再编写功能实现代码,并且使得该测试用例通过,即完成了系统的一个功能模块。

系统设计:在系统功能实现代码编写之前,我们需要先编写测试代码,在我们的测试代码中实现对系统行为的描述,这个描述其实就是用一种接近自然语言的方式对系统进行详细的设计,并且使项目相关人员,即使是非技术人员也能很容易看懂。

关于系统行为,举例说明:用户在一个特定的条件下对系统做请求,系统在该条件下做什么样的处理,这就是系统的一个行为。

总结一下BDD的概念:在项目之初,由客户、开发人员、测试人员一起通过充分的沟通对系统的行为进行设计,由测试人员以接近自然语言的方式编写可以描述系统行为的测试用例,然后由开发人员编写相关的实现代码,并确保该测试用例通过。

循环这个过程实现整个系统的功能。

BDD的测试思想先前在写日报的过程中,以关键字的形式来描述,这里用同样的方式来表达。

关键字:TDD,代码即文档,系统设计,合作。

1.TDD全称:Test Driven Development(测试驱动开发)。

BDD是基于TDD发展起来的,BDD中测试先行的理念也是来自于TDD,测试驱动开发,由测试来推动着开发的工作,在具体的项目实施中,测试的工作先行,在功能代码编写前,先编写测试代码,再编写功能实现代码,并且使得该测试用例测试通过,循环这个过程,来实现系统的其他功能。

在一个项目的开发过程中,针对于每一个阶段,都可用TDD的思想来开展工作。

BDD对TDD理念进行了扩展。

TDD要求用测试来驱动开发,其重点偏向开发,测试用例是在约束开发者,使开发者的目标明确,设计出满足需求的系统。

BDD 要求在设计测试用例时对系统进行定义,倡导我们在测试用例中用通用语言把系统的行为描述出来,把测试代码作为系统的定义文档,将系统的设计和测试用例结合起来,进而驱动开发工作。

2.代码即文档很多软件项目的失败源于项目团队人员对文档理解的差错。

文档用来约束一个项目团队成员,使得大家的目标保持一致,总之:文档很重要。

我们用需求文档管理需求,但是这些文档本身都因为容易变更,加上团队人员主观上的理有误,最终做出不能满足产品需求的产品。

BDD的思想是:将我们的产品设计写在我们的测试用例中。

把传统的产品说明书的内容写在测试用例中,在测试用例中描述软件系统的具体行为,体现着系统的设计,而且这是一份“活” 的的文档,因为这是可以运行的测试用例,我们由这些测试用例来驱动开发者的编码工作,开发者必须使这个测试用例通过,才算满足最基本工作。

假如用例不通过,显然我们的系统就存在缺陷,没有满足用户的需求。

这样,就算是开发人员对文档理解有误,也会满足系统的需求。

3.系统设计在测试用例中描述系统的行为,体现出系统的每一步操作所带动相关事件的触发,进而得到相关的结果,这是对一个产品详细的定义,也就要求我们在测试用例中对系统的行为做出详细的设计。

4.合作客户,需求分析人员,测试人员,和开发人员之间的合作,这个合作时间较集中在项目的开始阶段,大家一起对系统的行为进行定义,测试发展起步较晚,到现在开发人员还是有很多不重视测试,再加上测试人员的工作是找出他们代码中存在的bug,所以开发人员和测试人员需要很多的相互沟通理解,处理好关系,这样的合作,无疑提供给我们交流很大的一个空间。

BDD的测试方法关键字:故事&场景,通用语言。

1.故事&场景一个故事描述了系统的一个行为,对应着用户的一个需求。

举例说明:外部开发者开发好的应用经过小二的审核后发布在淘宝开发平台的服务平台上面,供用户订购使用。

现在有一个用户要访问一个应用,此时就发生了一个故事,用户访问应用要经过top-container应用容器的校验,这个故事中描述了top-Container做校验的行为。

在一个故事中又会有多个不同的场景。

用户访问应用时,用户和应用之间有很多种条件需要满足,每一种不同的情况都对应着一个场景。

举例说明:用户在没有订购此应用,并且此应用恰好又需要订购才能够访问,这种情况下,top-Container拒绝其访问;再比如,用户没有订购过这个应用,此应用是一个基础应用不需要用户订购,这种情况下,top-Container容许其访问。

故事和场景的作用就是定位,故事定位要描述系统的功能模块,场景定位要描述该功能模块下哪种条件下的系统行为。

2.通用语言语言是用于沟通,向别人表达自己的意思的工具,我们的基于BDD的测试用例的代码描述着系统的一个行为,可以按照传统的写法将这个行为描述清楚,但是别人来看时,肯定要花不少的精力。

所以BDD提供一个通用的模板,并且要客户,开发人员和测试人员一起定义一套通用语言来做描述,这样做,既可以方便测试人员自己写测试代码,也能方便别人看懂,也可以为开发人员的实现代码提供类名,方法名。

3.示例通用模板示例:Story: 标题(描述故事)As a [角色]I want [特征]So that [利益]Scenario 1: 标题(描述场景)Given [上下文]And [其他上下文]...When [事件]Then [结果]And [其他结果]举例说明:Story: 用户访问应用As a 用户I want 访问淘宝开放平台的一个应用So that 我可以使用这个应用提供的服务Scenario 1: 用户未订购此应用Given 一个应用And 此应用需要订购才能访问And 用户没有订购此应用When 该用户访问此应用Then 访问被拒绝And 返回用户没有订购此应用的错误码及错误信息。

BDD的优势1.代码即文档,由测试用例管理需求,最大限度的消除项目团队人员对需求理解不一致。

2.由测试代码监督,约束着开发代码。

开发者需要时刻考虑去满足测试的需要。

这样使得开发者的代码保持着方向的正确性,也使开发者的代码足够的精练,产生较少的垃圾代码。

3.开发者需要设计良好定义的接口,来满足测试的需要,降低系统模块的耦合度。

4.有测试用例的保障,系统代码可以放心的重构。

5.增强开发者的信心。

一个测试用例的通过标志着系统一个需求的实现,这样的成果可以增加开发者的成就感与信心。

BDD的缺点1.测试用例只能体现系统细节设计,不能体现系统总体设计。

2.测试用例无法覆盖全部的测试工作。

3.约束开发者的发挥,开发者需要时刻考虑能否满足系统行为,能否使测试用例通过,这样会局限创造力。

4.项目初期在测试方面投入过多,引起开发人员的不满。

这一点上尤其对于新近实行TDD理念的团队来说,这方面的怀疑更多。

总结BDD基于TDD发展起来,具有很好的实践基础,并且越来越多的人开始接触并且接受其的测试理念,受到了很多人的热捧。

个人认为,我们可以在小范围内用BDD的方式来开展项目开发工作,然后看效果,调整成为最符合我们公司开发需要的方式,进而推广。

在我们的日常测试中,我们也可以借鉴其系统设计的概念,将我们的测试用例设计成可以体现系统行为的风格,这样做的好处有两点,一是方便维护,别人一看就懂得我们的测试用例的校验点在哪里;二是方便我们定位问题,导致用例不通过的原因是系统的哪一步处理出错,不需要我们调试跟踪就直接看出来,可以节约我们大量的时间。

最后,用一个博友的话来总结BDD:优美的测试代码,就是一个个优美的故事。

也用一句话说出我们所有测试人员的心声:我不做软件,但我使软件变得更好!二、BDD课题研究之jbehave介绍1、什么是JBehaveJBehave是一个用java编写的BDD(Behavior-Driven-Design)框架, java界的Cucumber。

(注: 1、BDD主要的目的是能够从业务领域专家的视角来编写测试用例,以解决技术人员和业务领域专家的沟通问题。

2、Cucumber是基于Ruby 的BDD框架)2、JBehave的特点1)、纯Java实现,能调用java API的地方就能使用。

2)、能够定义和执行基于文本的Story,让我们能够从用户价值出发进行开发。

(BDD都是这个目的)。

3)、User stories可以放在classpath,也可通过外部URL传进来。

4)、User stories可以并发执行且能够指定并发执行的线程数。

5)、可以通过一些用户定义的信息把User Stories形成一部完整文档。

6)、通过Anotation把Story的步骤对应到Java类中,还能够把自动把Story 中的String参数转换成方法对应的参数类型。

(How?)7)、基于Anotation的运行配置信息,指定Story对应的Steps类文件8)、支持通过第三方IOC容器(Spring,Guice,PicoContainer,Weld)管理配置信息和Steps类9)、支持通过Groovy写配置信息和Steps文件10)、支持报表,既可以生成可读性良好的报表格式(HTML,TXT ),还支持Json,XML格式供外部程序调用。

11)、未实现的步骤会自动标记Pending12)、支持任何语言书写Story13)、可以使用Junit或者任何基于anotation的测试框架运行Story测试14)、支持Maven,Ant集成,通过脚本运行BDD测试脚本。

3、JBehave的结构Story:系统想要具有的功能Scenario:Story描述的功能的Key-Example 。

相关文档
最新文档