(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

基于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 住 房 條 件 入 住 日 期 退 房 日 期 人 數 房 間 數 量 入

Chapter 9: Objects and Classes

javaexample-02.pdf

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

《大话设计模式》第一章

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

chp6.ppt

untitled

Java

JavaIO.PDF


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

XXXXXXXX

优迈科技教学大纲2009版本

IoC容器和Dependency Injection模式.doc

<4D F736F F F696E74202D20332D322E432B2BC3E6CFF2B6D4CFF3B3CCD0F2C9E8BCC6A1AAD6D8D4D8A1A2BCCCB3D0A1A2B6E0CCACBACDBEDBBACF2E707074>

雲端 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 质量更高 服务更好 学习资料 半年免费更新服务

FileMaker 16 ODBC 和 JDBC 指南

FileMaker 15 ODBC 和 JDBC 指南

untitled

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

二 Synchronized 1. Java 语 言 的 关 键 字, 当 它 用 来 修 饰 一 个 方 法 或 者 一 个 代 码 块 的 时 候, 能 够 保 证 在 同 一 时 刻 最 多 只 有 一 个 线 程 执 行 该 段 代 码 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

提问袁小兵:

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

建立Android新專案

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

untitled

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

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



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

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

java2d-4.PDF

FAQ -PowerDesigner9.5.DOC

<4D F736F F D D6D0B9FAB5D8D6CAB4F3D1A7BFC6D1D0BEADB7D1D3D0B9D8D6C6B6C82D48442E646F63>

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

1. 2. Flex Adobe 3.

新版 明解C++入門編

江人发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