(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() JUnit

Similar documents
JBuilder Weblogic

1.JasperReport ireport JasperReport ireport JDK JDK JDK JDK ant ant...6

EJB-Programming-3.PDF

基于CDIO一体化理念的课程教学大纲设计

EJB-Programming-4-cn.doc

Servlet

Microsoft Word - 01.DOC

D getinitparameternames() 9 下 列 选 项 中, 属 于 Servlet API 中 提 供 的 request 对 象 的 包 装 类 的 是 ( ) A HttpServletRequestWrapper B HttpServletRequest C HttpServ

untitled

詞 彙 表 編 號 詞 彙 描 述 1 預 約 人 資 料 中 文 姓 名 英 文 姓 名 身 份 證 字 號 預 約 人 電 話 性 別 2 付 款 資 料 信 用 卡 別 信 用 卡 號 信 用 卡 有 效 日 期 3 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Chapter 9: Objects and Classes

javaexample-02.pdf

untitled

北 风 网 讲 师 原 创 作 品 ---- 仅 供 学 员 内 部 交 流 使 用 前 言 吾 尝 终 日 而 思 矣, 不 如 须 臾 之 所 学 也 ; 吾 尝 跂 而 望 矣, 不 如 登 高 之 博 见 也 登 高 而 招, 臂 非 加 长 也, 而 见

《大话设计模式》第一章

没 有 多 余 的 Contruol 或 Action 了 原 来 Domain 层 被 服 务 层 Service layer 遮 挡, 在 右 边 图 中, 则 Domain 层 直 接 暴 露 给 前 台 了, 没 有 被 遮 挡, 裸 露 了 这 样 一 步 到 位 实 现 领 域 模 型

使 用 Java 语 言 模 拟 保 险 箱 容 量 门 板 厚 度 箱 体 厚 度 属 性 锁 具 类 型 开 保 险 箱 关 保 险 箱 动 作 存 取 款

chp6.ppt

untitled

Java

JavaIO.PDF


本章学习目标 小风 Java 实战系列教程 SpringMVC 简介 SpringMVC 的入门案例 SpringMVC 流程分析 配置注解映射器和适配器 注解的使用 使用不同方式的跳转页面 1. SpringMVC 简介 Spring web mvc

基于ECO的UML模型驱动的数据库应用开发1.doc

untitled

untitled

untitled

Java java.lang.math Java Java.util.Random : ArithmeticException int zero = 0; try { int i= 72 / zero ; }catch (ArithmeticException e ) { // } 0,

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

Microsoft Word - ch04三校.doc

untitled

Java Access 5-1 Server Client Client Server Server Client 5-2 DataInputStream Class java.io.datainptstream (extends) FilterInputStream InputStream Obj

XXXXXXXX

优迈科技教学大纲2009版本

IoC容器和Dependency Injection模式.doc

Chapter 9: Objects and Classes

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

2009年3月全国计算机等级考试二级Java语言程序设计笔试试题

雲端 Cloud Computing 技術指南 運算 應用 平台與架構 10/04/15 11:55:46 INFO 10/04/15 11:55:53 INFO 10/04/15 11:55:56 INFO 10/04/15 11:56:05 INFO 10/04/15 11:56:07 INFO

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

Microsoft Word - 第6章.doc

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 15 ODBC 和 JDBC 指南

untitled

Microsoft Word - Learn Objective-C.doc

第一章 章标题-F2 上空24,下空24

TopTest_Adminstrator.doc

Swing-02.pdf

1: public class MyOutputStream implements AutoCloseable { 3: public void close() throws IOException { 4: throw new IOException(); 5: } 6:

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

二 Synchronized 1. Java 语 言 的 关 键 字, 当 它 用 来 修 饰 一 个 方 法 或 者 一 个 代 码 块 的 时 候, 能 够 保 证 在 同 一 时 刻 最 多 只 有 一 个 线 程 执 行 该 段 代 码 2. 当 两 个 并 发 线 程 访 问 同 一 个

附件2

使用 XFire 与 Spring 开发 Web Service 2 实现功能与特点 基于 J2EE 平台的 Web Service 服务 开发方便, 配置简单 设计接口 实现服务 配置暴露接口 XFire 将自动生成对应的 wsdl 支持高级详细配置 与 Spring 无缝集成 运行环境 JDK

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

在Spring中使用Kafka:Producer篇

Learning Java

提问袁小兵:

untitled

BPS6.0 Web服务集成和短流程功能使用手册

使用MapReduce读取XML文件

<4D F736F F D20C8EDC9E82DCFC2CEE7CCE22D3039C9CF>

4.1 AMI MQSeries API AMI MQI AMI / / AMI JavaC C++ AMI / AMI AMI - / /

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

<4D F736F F D20BBF9D3DA416E64726F6964C6BDCCA8B5C4B5E7D7D3C5C4C2F4CFB5CDB32E646F63>

建立Android新專案

内 容 提 要 将 JAVA 开 发 环 境 迁 移 到 Linux 系 统 上 是 现 在 很 多 公 司 的 现 实 想 法, 而 在 Linux 上 配 置 JAVA 开 发 环 境 是 步 入 Linux 下 JAVA 程 序 开 发 的 第 一 步, 本 文 图 文 并 茂 地 全 程 指

(6) 要 求 付 款 管 理 员 从 预 订 表 中 查 询 距 预 订 的 会 议 时 间 两 周 内 的 预 定, 根 据 客 户 记 录 给 满 足 条 件 的 客 户 发 送 支 付 余 款 要 求 (7) 支 付 余 款 管 理 员 收 到 客 户 余 款 支 付 的 通 知 后, 检

untitled

设计模式 Design Patterns

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

用手機直接傳值不透過網頁連接, 來當作搖控器控制家電 ( 電視遙控器 ) 按下按鍵發送同時會回傳值來確定是否有送出 問題 :1. 應該是使用了太多 thread 導致在傳值上有問題 2. 一次按很多次按鈕沒辦法即時反應

Microsoft PowerPoint - 02-Servlet-Basics-Chinese.ppt

resp.getwriter().print(j + "*" + i + "=" + j * i+" "); resp.getwriter().print("<br/>"); protected void dopost(httpservletrequest req, HttpServletRespo

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

使用Cassandra和Spark 2.0实现Rest API服务



内 容 简 介 本 书 是 一 本 关 于 语 言 程 序 设 计 的 教 材, 涵 盖 了 语 言 的 基 本 语 法 和 编 程 技 术, 其 中 包 含 了 作 者 对 语 言 多 年 开 发 经 验 的 总 结, 目 的 是 让 初 学 的 读 者 感 受 到 语 言 的 魅 力, 并 掌

J2EE MVC with Webwork2 Xwork, to J2EE MVC with Webwork2 Xwork

java2d-4.PDF

Java 大师之路

(Microsoft Word - \272\364\263q\245|\244A_ _\304\254\253\330\336\263__\272\353\302\262\263\370\247i.doc)

FAQ -PowerDesigner9.5.DOC

<4D F736F F D D6D0B9FAB5D8D6CAB4F3D1A7BFC6D1D0BEADB7D1D3D0B9D8D6C6B6C82D48442E646F63>

被当作鬼的人.doc

untitled

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

ebook

9, : Java 19., [4 ]. 3 Apla2Java Apla PAR,Apla2Java Apla Java.,Apla,,, 1. 1 Apla Apla A[J ] Get elem (set A) A J A B Intersection(set A,set B) A B A B

无类继承.key

"+handlermethod.getbean().getclass().getname()); public void aftercompletion(httpservletrequest req, HttpServletResponse resp, Object handler, Excepti

在所有的项目开发中, 一定是多人协作的团队开发, 但是使用框架就会出现一个问题, 我们所 有的 Action 以及相关的路径都要求在我们的 struts.xml 文件中配置, 如果所有的人去修改一个 文件, 那么就会变得混乱, 而且有可能出现冲突, 那么在 struts.xml 文件中为了解决这个问

1. 2. Flex Adobe 3.

新版 明解C++入門編

Microsoft PowerPoint - 05-Status-Codes-Chinese.ppt

untitled

江人发2009年第49号突发事件应对法培训.doc

输入 project name 选择完成

Transcription:

Tomcat Web JUnit Cactus JUnit Java Cactus JUnit 26.1 JUnit Java JUnit JUnit Java JSP Servlet JUnit Java Erich Gamma Kent Beck xunit JUnit boolean JUnit Java JUnit Java JUnit Java 26.1.1 JUnit JUnit How What JUnit JUnit JUnit Ant JUnit JUnit JUnit (TestCase) (TestCase) (TestSuite) (TestResult (TestListener) 363

(TestFailure) JUnit Framework AssertionFailedError JUnit Composite TestSuite Test TestSuite run() run() 26.1.2 JUnit http://prdownloads.sourceforge.net/junit/junit3.8.1.zip?download JUnit3.8.1 <JUNIT_HOME> <JUNIT_HOME> junit.jar CLASSPATH java junit.swingui.testrunner junit.samples.alltests 26.1 26.1 JUnit 26.1 JUnit 26.2 JUnit JUnit Test TestCase Assert TestSuite 364

26.2.1 Test Test Composite TestCase TestSuite TestDecorator public int counttestcases TestCase public void run TestResult TestResult run 26.2.2 TestCase TestCase Test TestCase(string name) name TestCase TestCase setup() teardown() setup() setup() teardown() // setup(); try { // runtest(); finally { // teardown(); TestCase run JUnit run TestResult 26.2.3 Assert Assert Assert AssertionFailedError JUnit Failes String AssertionFailedError JUnit 6 31 assertequals Object expcted,object actual) equals() assertsame Object expected,object actual Java == Reference asserequals(string message,string expected,string actual) ComparisonFailure 365

26.2.4 TestSuite TestSuite Cases TestSuit TestSuite Test TestSuites Test TestSuite 6 Public TestCase Public void test 26.2.5 TestResult TestResult TestResult Run() TestResult TestCase TestListener TestRunner listener starttest(test test) endtest(test test) adderror(test test,throwable t) addfailure(test test,assertionfailederror t) TestFailure tostring() 26.3 JUnit JUnit junit.framework.testcase test case public void testxxxxx() test case test junit test runner test case JUnit 2 test runner java junit.swingui.testrunner XXXXX java junit.textui.testrunner XXXXX XXXXX 26.3.1 1. getter setter package cn.ac.ict; 366

public class Account { private String username; private float rmb; public Account(String name,float money){ this.username = name; this.rmb = money; // username public void setusername(string name){ this.username = name; public String getusername(){ return this.username; // rmb public void setrmb(float money){ this.rmb = money; public float getrmb(){ return this.rmb; // Account public boolean Operate(Account acc){ if(username.equals(acc.getusername())){ if(this.rmb>acc.getrmb()){ rmb-=acc.getrmb(); else{ return false; else if(!username.equals(acc.getusername())){ rmb+=acc.getrmb(); return true; // Account public boolean equals(object obj1,object obj2){ if((obj1 instanceof Account)&&(obj2 instanceof Account)){ Account acc1 = (Account)obj1; Account acc2 = (Account)obj2; return (rmb==(acc1.getrmb()+acc2.getrmb())); return false; 2. TestCase testxxxx() 367

XXXX AccountTest package cn.ac.ict; import junit.framework.assert; import junit.framework.testcase; public class AccountTest extends TestCase { Account acc1 ; Account acc2 ; // protected void setup() throws Exception { super.setup(); acc1 = new Account("zhw",25663.7F); acc2 = new Account("rambler",2563.7F); // protected void teardown() throws Exception { super.teardown(); // Operate public void testoperate() { Account expected = new Account("all",28227.4F); Account temp = new Account("rambler",325.4F); acc1.operate(temp); acc2.operate(temp); Assert.assertTrue(expected.equals(acc1,acc2)); // equals public void testequalsobjectobject() { Assert.assertTrue(!acc1.equals(null,null)); Assert.assertTrue(acc1.equals(acc1,new Account("zero",0.0F))); Assert.assertTrue(!acc1.equals(acc1,acc2)); setup teardown junit framework setup teardown -> setup -> testxxxx -> teardown -> AccountTest.java junit.jar java junit.awtui.testrunner cn.ac.ict.accounttest 26.2 java junit.textui.testrunner cn.ac.ict.accounttest java junit.swingui.testrunner cn.ac.ict.accounttest 368

26.2 26.3.2 TestSuite TestSuite TestCase testxxx() TestSuite TestCase testxxx () TestSuite package cn.ac.ict; import junit.framework.test; import junit.framework.testsuite; public class AccountTests { public static void main(string[] args) { junit.swingui.testrunner.run(accounttests.class); public static Test suite() { TestSuite suite = new TestSuite("Test for cn.ac.ict"); //$JUnit- $ suite.addtestsuite(accounttest.class); //$JUnit- $ return suite; TestCase TestSuite TestCase TestCase TestSuite TestSuite java cn.ac.ict.accounttests 369

java junit.swingui.testrunner cn.ac.ict.accounttests 26.3 26.4 Cactus Web 26.3 Cactus JUnit Java Cactus Servlet Java HttpServletRequest HttpServletResponse HttpSession Cactus JspTestCase ServletTestCase FilterTestCase Cactus 26.4 26.4 Cactus JUnit Test Runner YYYTestCase.runTest() beginxxx(servlettestrequest ) YYYTestCase.runTest() Redirector Proxy HTTP 370

Redirector Proxy Test class Server HttpServletRequest ServletConfig ServletContext Cactus wrapper HTTP Session Redirector Proxy Reflection Test setup() testxxx() teardown() testxxx() Server side classes JUnit assert API testxxx() Redirector Proxy Redirector Proxy JUnit YYYTestCase.runTest() endxxx(httpurlconnection) JUnit asserts HTTP Header servlet output stream Tomcat Cactus Servlet 26.4.2 Cactus Cactus Apache Cactus Web Cactus JAR Cactus http://jakarta.apache.org/cactus/ 1.7.1 jakarta-cactus-12-1.7.1.zip lib Web /WEB-INFO/lib 26.4.2 Cactus Servlet Servlet Servlet JSP 1. Servlet Servlet package cn.ac.ict; import javax.servlet.http.*; public class LoginServlet extends HttpServlet { public boolean isvaliduser(httpservletrequest request) { String username = request.getparameter("username"); String password = request.getparameter("password"); if(username == null password == null!username.equals("justin")!password.equals("123456")) { return false; else { return true; Servlet 2. Servlet 371

Cactus JUnit Servlet TestCase ServletTestCase Servlet LoginServletTest.java package cn.ac.ict.test; import org.apache.cactus.servlettestcase; import org.apache.cactus.webrequest; import cn.ac.ict.loginservlet; public class LoginServletTest extends ServletTestCase { // public void beginvaliduser(webrequest webrequest) { webrequest.addparameter("username", "justin"); webrequest.addparameter("password", "123456"); // public void testvaliduser() { LoginServlet loginservlet = new LoginServlet(); asserttrue(loginservlet.isvaliduser(request)); // public void begininvaliduser(webrequest webrequest) { webrequest.addparameter("username", "guest"); webrequest.addparameter("password", "123456"); // public void testinvaliduser() { LoginServlet loginservlet = new LoginServlet(); assertfalse(loginservlet.isvaliduser(request)); TestRunner beginxxx() WebRequest WebRequest HTTP testxxx() beginxxx() testxxx() testxxx() request Container ServletTestRedirector request 3. Redirector Proxy TestRunner ServletTestRedirector Redirector Proxy Cactus ServletTestRunner TestRunner Web web.xml Servlet web.xml <servlet> <servlet-name>servletredirector</servlet-name> <servlet-class>org.apache.cactus.server.servlettestredirector</servlet-c lass> </servlet> <servlet-mapping> <servlet-name>servletredirector</servlet-name> 372

<url-pattern>/servletredirector</url-pattern> </servlet-mapping> <servlet> <servlet-name>servlettestrunner</servlet-name> <servlet-class>org.apache.cactus.server.runner.servlettestrunner</servle t-class> </servlet> <servlet-mapping> <servlet-name>servlettestrunner</servlet-name> <url-pattern>/servlettestrunner</url-pattern> </servlet-mapping> 4. Servlet Cactus Web 26.5 26.5 Servlet Tomcat http://localhost:8080/cactusunit/servlettestrunner?suite=cn.ac.ict.test. LoginServletTest 26.6 373

26.6 Servlet XML Suite cn.ac.ict.test.loginservlettest 26.5 1. software entropy 2. bug 3. 1 2 3 TestCase 4. UML CRC 374

1 2 3 5. bug 26.6 JUnit Java Servlet JSP Cactus JUnit Java JUnit JUnit JUnit Cactus Cactus JUnit TestCase Suite 375