- 浏览: 175826 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
chenyi1125:
StateStats 是自己定义的类吧,有哪些属性,如何与我 ...
mongodb sum 操作 -
yongquan812:
...
最全的 Twitter Bootstrap 开发资源清单 -
mccxj:
不是已经提供个params的属性来添加路径的参数了么?我对分页 ...
grails 查询结果分页 简单实现 -
sphinxdwood:
请问第22行有什么用?params.ft_inlist = K ...
grails 查询结果分页 简单实现 -
walsh:
classpath的配置不正确吧
java基础
package com.test.junit4; import java.util.Arrays; import java.util.Collection; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; /** * 参数化测试的类必须有Parameterized测试运行器修饰 * */ @RunWith(Parameterized.class) public class AddTest3 { private int input1; private int input2; private int expected; /** * 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 1)该方法必须由Parameters注解修饰 2)该方法必须为public static的 3)该方法必须返回Collection类型 4)该方法的名字不做要求 5)该方法没有参数 * @return */ @Parameters @SuppressWarnings("unchecked") public static Collection prepareData(){ Object [][] object = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}}; return Arrays.asList(object); } public AddTest3(int input1,int input2,int expected){ this.input1 = input1; this.input2 = input2; this.expected = expected; } @Test public void testAdd(){ Add add = new Add(); int result = add.add(input1, input2); Assert.assertEquals(expected,result); } class Add{ public int add(int a,int b){ return a+b; } } }
package com.movellsoft.ideal.manufacturer.diagnostics.web; import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.ByteOrder; import javax.servlet.http.HttpServletRequest; import org.apache.log4j.Logger; import org.apache.struts2.interceptor.ServletRequestAware; import com.movellsoft.ideal.core.web.Struts2Action; import com.movellsoft.ideal.manufacturer.diagnostics.socket.ClientTCPSocket; @SuppressWarnings("serial") public class DiagnosticsRemoteAction extends Struts2Action implements ServletRequestAware{ private static Logger log = Logger.getLogger(DiagnosticsRemoteAction.class); private HttpServletRequest request; private ClientTCPSocket socket; public void setSocket(ClientTCPSocket socket) { this.socket = socket; } public String remoteDiag(){ log.debug("<<< reomoteDiag <<< "); String conn = request.getParameter("connect"); String connValue = request.getParameter("ConnectValue"); String dtype = request.getParameter("data_type"); String display = request.getParameter("display"); String rtime = request.getParameter("realtime"); String proname = request.getParameter("process_name"); String allsr = request.getParameter("all_stacks_regs"); boolean flag400 = allsr.equals("1"); // System.out.println("---------------------------all stack & register :: "+ allsr); //String modulename = request.getParameter("module_name"); if(conn == null || "".equals(conn)){ request.setAttribute("msg", getText("connect.notnull")); log.debug("conn"); return SUCCESS; } if(!conn.equals("cable") && (connValue == null || "".equals(connValue))){ request.setAttribute("msg", getText("convalue.notnull")); log.debug("connValue"); return SUCCESS; } if(dtype == null || "".equals(dtype)){ request.setAttribute("msg", getText("dtype.notnull")); log.debug("dtype"); return SUCCESS; } log.debug("check filed over"); //拼装byte数组 //16个01 byte[] bts = new byte[128]; for (int i = 0; i < 16; i++) { bts[i] = 1; } //02,D0,01 bts[16] = 2; bts[17] = -48; for (int j = 18; j < 22 ; j++) { bts[j] = 0; } bts[22] = 1; InetAddress addr = null; try { addr = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } String ip = addr.getHostAddress(); if(conn.equals("ip")){ ip = connValue; } log.debug("<<< ip == "+ip); //ip length bts[23] = (byte)ip.length(); byte[] btip = ip.getBytes(); int length = btip.length; int j = 24; //ip for (int i = 0 ; i < length; i++,j++) { bts[j] = btip[i]; } //////////////////////改变下面的顺序 //sender SMS 0,cable 1[4] for(int i=0;i<3;i++){ bts[j++]=0; } if(conn.equals("ip")){ log.debug("ip"); bts[j++]=0; } else if(conn.equals("cable")){ bts[j++]=1; } //operation [4] log.debug("dtype=["+dtype+"]"); if(dtype.equals("lastreport")){ bts[j++]=0; bts[j++]=0; bts[j++]=0; bts[j++]=2; } else if(dtype.equals("allreport")){ bts[j++]=0; bts[j++]=0; bts[j++]=0; bts[j++]=1; } else if(dtype.equals("realtime")){ if(rtime.equals("sysdata")){ if(flag400){ bts[j++]=0; bts[j++]=4; bts[j++]=0; bts[j++]=0; } else{ bts[j++]=0; bts[j++]=0; bts[j++]=0; bts[j++]=0; } } else if(rtime.equals("f")){ bts[j++]=2; bts[j++]=0; bts[j++]=0; bts[j++]=0; } else if(rtime.equals("m")){ if(flag400){ bts[j++]=4; bts[j++]=4; bts[j++]=0; bts[j++]=0; }else{ bts[j++]=4; bts[j++]=0; bts[j++]=0; bts[j++]=0; } } else if(rtime.equals("mandf")){ bts[j++]=6; bts[j++]=0; bts[j++]=0; bts[j++]=0; } /***********************[ new ]******************************/ else if(rtime.equals("oneProcess")){ if(flag400){ bts[j++]=(byte)128; bts[j++]=4; bts[j++]=0; bts[j++]=0; }else{ bts[j++]=(byte)128; bts[j++]=0; bts[j++]=0; bts[j++]=0; } } else if(rtime.equals("oneModule")){ if(flag400){ bts[j++]=0; bts[j++]=6; bts[j++]=0; bts[j++]=0; }else{ bts[j++]=0; bts[j++]=2; bts[j++]=0; bts[j++]=0; } } else if(rtime.equals("all_history")){ if(flag400){ bts[j++]=0; bts[j++]=5; bts[j++]=0; bts[j++]=0; }else{ bts[j++]=0; bts[j++]=1; bts[j++]=0; bts[j++]=0; } } else if(rtime.equals("all_stacks_regs")){ bts[j++]=0; bts[j++]=4; bts[j++]=0; bts[j++]=0; } /***********************[ new ]******************************/ } //display 0 popup,1 nopopup[4] if(display.equals("nopopup")){ log.debug("nopopup"); bts[j++]=0; bts[j++]=0; bts[j++]=0; bts[j++]=0; } else if(display.equals("popup")){ bts[j++]=0; bts[j++]=0; bts[j++]=0; bts[j++]=1; } //processname or module name length [4] if(proname != null && !"".equals(proname)){ bts[j++]=(byte)proname.length(); bts[j++]=0; bts[j++]=0; bts[j++]=0; //processname or module name byte[] pn = proname.getBytes(); for(int i=0;i<pn.length;i++){ bts[j++]=pn[i]; } } byte[] bts2 = new byte[j++]; for (int i = 0; i < bts2.length; i++) { bts2[i] = bts[i]; } log.debug("bts2 length is "+bts2.length+" :"); String d=""; for(int i=0;i<bts2.length;i++){ if(i%16==0)d+="\n"; int v = bts2[i] & 0xFF; if (v < 16) d += "0"; d += Integer.toString(v, 16).toUpperCase() + " "; } log.debug("<<<d : "+d); System.out.println(d); //打开socket if(!socket.open(ip,"6789")){ request.setAttribute("msg", getText("socket.error")); log.debug("<<<< msg:"+request.getAttribute("msg")); return SUCCESS; } //发送request if(socket.send(bts2) == -2){ request.setAttribute("msg", getText("socket.error")); log.debug("<<<< msg:"+request.getAttribute("msg")); return SUCCESS; } socket.close(); request.setAttribute("msg", getText("request.succeed")); log.debug("<<<< msg:"+request.getAttribute("msg")); return SUCCESS; } public String localDiag(){ log.debug("<<< localDiag <<<"); String serverpath = request.getParameter("serverpath"); File serverf = new File(serverpath); if(serverf.exists()){ }else{ request.setAttribute("msg", getText("file.notexist")); } return SUCCESS; } public String remotepage(){ return SUCCESS; } public void setServletRequest(HttpServletRequest request) { this.request = request; } public static void main(String[] args) { byte[] bts2 = new byte[16]; ByteBuffer bytebuf = ByteBuffer.wrap(bts2); bytebuf = bytebuf.order(ByteOrder.LITTLE_ENDIAN); bytebuf.putInt(12); bytebuf.putInt(15); bytebuf.putChar('a'); bytebuf.putChar('b'); bytebuf.put((byte)1); bytebuf.put((byte)2); bts2 = bytebuf.array(); for (int i = 0; i < bts2.length; i++) { byte b = bts2[i]; System.out.print(String.valueOf(b)+"\n"); } } }
package com.movellsoft.ideal.manufacturer.diagnostics.web; import java.lang.reflect.Method; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Arrays; import java.util.Collection; import javax.servlet.http.HttpServletRequest; import org.easymock.EasyMock; import org.easymock.IMocksControl; import org.junit.After; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; import com.movellsoft.ideal.manufacturer.diagnostics.socket.ClientTCPSocket; import static org.easymock.EasyMock.expectLastCall; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.anyObject; import static org.easymock.classextension.EasyMock.createMock; import static org.easymock.classextension.EasyMock.replay; import static org.easymock.classextension.EasyMock.verify; @RunWith(Parameterized.class) public class TestRemoteAction { private IMocksControl control = EasyMock.createControl(); private HttpServletRequest request = control.createMock(HttpServletRequest.class); private DiagnosticsRemoteAction rAction = new DiagnosticsRemoteAction(); private ClientTCPSocket socket = null; private String realtime; private String all_st_reg; public TestRemoteAction(String realtime,String all_st_reg) { System.out.println(realtime+ " " +all_st_reg); this.realtime = realtime; this.all_st_reg = all_st_reg; } @SuppressWarnings("unchecked") @Parameters public static Collection prepareData(){ Object [][] obs = { {"sysdata","0"}, {"sysdata","1"}, {"m","0"}, {"m","1"}, {"oneModule","0"}, {"oneModule","1"}, {"oneProcess","0"}, {"oneProcess","1"}, {"all_history","0"}, {"all_history","1"}, {"all_stacks_regs","0"}, {"all_stacks_regs","1"} }; return Arrays.asList(obs); } @Test public void exec(){ request.getParameter("connect"); expectLastCall().andReturn("cable"); request.getParameter("ConnectValue"); expectLastCall().andReturn(""); request.getParameter("data_type"); expectLastCall().andReturn("realtime"); request.getParameter("display"); expectLastCall().andReturn("nopopup"); request.getParameter("realtime"); expectLastCall().andReturn(realtime); request.getParameter("process_name"); expectLastCall().andReturn(""); request.getParameter("all_stacks_regs"); expectLastCall().andReturn(all_st_reg); try { socket = createMock(ClientTCPSocket.class,new Method[]{ ClientTCPSocket.class.getMethod("open",String.class,String.class), ClientTCPSocket.class.getMethod("send", byte[].class) }); } catch (SecurityException e1) { e1.printStackTrace(); } catch (NoSuchMethodException e1) { e1.printStackTrace(); } InetAddress addr = null; try { addr = InetAddress.getLocalHost(); } catch (UnknownHostException e) { e.printStackTrace(); } String ip = addr.getHostAddress(); expect(socket.open(ip,"6789")).andReturn(true); expect(socket.send((byte[])anyObject())).andReturn(1); socket.close(); request.setAttribute("msg", rAction.getText("request.succeed")); request.getAttribute("msg"); expectLastCall().andReturn(""); replay(socket); control.replay(); /**********************/ rAction.setServletRequest(request); rAction.setSocket(socket); rAction.remoteDiag(); /***********************/ control.verify(); verify(socket); } @After public void line(){ if("1".equals(all_st_reg)) System.out.println("--------------------------------------------------------"); } }
sysdata 0
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 00 00 00 00 00 00 00
sysdata 1
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 04 00 00 00 00 00 00
--------------------------------------------------------
m 0
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 04 00 00 00 00 00 00 00
m 1
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 04 04 00 00 00 00 00 00
--------------------------------------------------------
oneModule 0
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 02 00 00 00 00 00 00
oneModule 1
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 06 00 00 00 00 00 00
--------------------------------------------------------
oneProcess 0
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 80 00 00 00 00 00 00 00
oneProcess 1
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 80 04 00 00 00 00 00 00
--------------------------------------------------------
all_history 0
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 01 00 00 00 00 00 00
all_history 1
01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
02 D0 00 00 00 00 01 0C 31 39 32 2E 31 36 38 2E
30 2E 31 37 00 00 00 01 00 05 00 00 00 00 00 00
--------------------------------------------------------
发表评论
-
mybatis 一些总结
2014-04-09 13:06 1317最近用mybatis开发,一些总结: 结合spring ... -
STOMP protocol
2013-12-18 00:41 1130STOMP,Streaming Text Ori ... -
java 反射机制更改私有属性 重复创建单例类对象
2012-11-04 00:16 2272单例类: package com.shenli. ... -
log4j.xml web.xml配置
2012-10-29 23:53 9889log4j.xml配置实现配置实现配置实现配置实现 先写 ... -
log4j.xml 配置
2012-10-29 23:30 979<?xml version="1.0& ... -
Maven 2 plugin fails with cannot find symbol exception when defining two locatio
2012-10-17 23:58 1209https://confluence.atlassian.co ... -
maven 1.5 编译级别
2012-09-25 10:36 823在pom.mxl中增加以下内容 <b ... -
eclipse debug 问题解决
2012-05-18 15:15 0eclipse 问题解决 问题描述:3.7.2里面安装了mav ... -
eclipse plugin update
2012-05-18 14:52 837eclipse plugin update site 总结 ... -
JVM 学习 (2)实战 OutOfMemoryError异常
2012-03-13 17:37 0首先来制造Java堆溢出: import jav ... -
JVM 学习(1)运行时数据区
2012-03-13 11:40 831今天开始学习JVM 先看看运行时数据区的结构: ... -
Ubuntu 上使用 Rxtx
2009-09-04 17:45 0ubuntu下安装和配置RXTX实现串口通讯 RXTX是一套 ... -
自己写的线程池
2009-06-05 15:54 13841 .线程池类:TPTaskProxy import ... -
Ant 获取svn工程并编译
2008-08-05 12:49 3274<?xml version="1.0" ... -
Acegi配置文档
2008-08-05 12:40 1046Acegi是基于Spring的一个 ... -
java基础
2008-06-05 13:33 2322Java基础 从事java相关的编程工 ... -
JBoss Rules 2
2008-06-05 11:40 1203JBoss Rules 学习(二): RETE算法 在JBo ... -
JBoss Rules 1
2008-06-05 11:33 1638JBoss Rules 学习(一): 什么是Rule ... -
html编码转换工具
2008-06-04 13:07 3063对于html的特殊标记的处理,有一个好办法,可以轻松的实现ht ...
相关推荐
Junit支持注解、异常断言、测试套件和参数化测试等功能,使得编写和维护测试代码变得方便快捷。例如,`@Test`注解标记测试方法,`assertEquals()`用于验证预期结果与实际结果是否相符。 **EasyMock介绍** EasyMock...
Junit支持参数化测试、异常测试、定时测试等,大大提高了测试的灵活性和覆盖率。在Junit中,可以使用setUp()和tearDown()方法设置测试前后的环境,或者使用@Before和@After注解来实现相同的功能。 EasyMock则是一个...
将这两个库结合使用,开发者可以在进行单元测试时,利用JUnit来组织和执行测试,而使用EasyMock来模拟复杂的依赖关系,使得测试更加独立和可控。通过这种方法,开发者可以专注于测试单个方法或组件,而不必担心外部...
JUnit4还支持测试套件(`@RunWith(Suite.class)`)、参数化测试(`@Parameters`)、定时器(`@Test(timeout = XXX)`)和假设(`Assume`类)等高级特性,这些都极大地增强了测试的灵活性和覆盖率。此外,JUnit4可以与...
除了核心功能外,JUnit和EasyMock还提供了一系列高级特性和技巧,如参数化测试、超时测试、异常测试等,帮助开发者构建更强大、更复杂的测试场景。同时,掌握最佳实践和常见陷阱对于高效利用这些工具至关重要。 ...
JUnit还支持参数化测试、套件测试和分类测试,使得测试更加灵活和全面。JUnit5引入了更多的改进,如条件测试、可中断测试、并行测试执行等,进一步提升了测试的效率和实用性。 将这三个工具结合使用,可以创建出...
在Java单元测试中,PowerMock和EasyMock是两个强大的库,它们扩展了JUnit的功能,使得开发者可以测试那些通常难以或无法直接测试的代码。PowerMock是基于EasyMock的一个扩展,它允许模拟静态方法、构造函数、final类...
Mocking在软件开发中是一种非常重要的测试技术,它允许开发者模拟复杂的系统组件,如外部服务、数据库连接或在本例中的Servlet,以便于隔离和测试单个代码单元。Easymock是一个流行的Java库,它提供了创建和管理模拟...
在工具方面,EasyMock提供了方便的API和集成到各种测试框架(如JUnit)的能力,使得开发者可以轻松地在测试代码中使用模拟对象。此外,EasyMock还支持扩展,比如通过EasyMock Class Extension来模拟静态方法和最终类...
在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock** PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法...
6. **参数化测试**:使用`@Parameters`和`@Parameterized`注解,可以创建参数化的测试用例。 7. **测试超时**:`@Test(timeout =毫秒数)`可以设置测试方法的最长运行时间,超过这个时间则视为失败。 8. **注解驱动...
- **参数化测试**:允许通过`@Parameters`注解提供参数集,实现同一测试方法的不同输入和预期结果,增强了测试覆盖率。 - **异常测试**:可以使用`@Test(expected = Exception.class)`来检查方法是否抛出了预期的...
3. **参数化测试(Parameterized Tests)**:JUnit 4支持参数化测试,允许你用不同的参数集运行同一个测试方法,这对于数据驱动测试非常有用。 4. **测试套件(Test Suites)**:通过`@Suite`注解,可以将多个测试...
JUnit是Java开发者进行单元测试的重要工具,它的使用和理解对于提升软件质量、保证代码可靠性至关重要。下面将详细阐述JUnit的核心概念、功能以及如何结合这本书的源代码进行学习。 JUnit是一个开源的测试框架,它...
当我们使用EasyMock创建的模拟对象时,可以在Junit的测试方法中调用它们,然后用断言检查这些模拟对象的行为是否符合预期。 此外,EasyMock还有扩展,如EasyMock Class Extension,它可以自动管理模拟对象的生命...
尽管JUnit 3.8.1已经比较老旧,但它仍然是理解测试基础和测试驱动开发的一个良好起点。如果你在分析源码,可以关注如何组织测试结构,如何处理测试生命周期,以及如何扩展和定制测试框架等方面。
6. **参数化测试**:JUnit 4引入了参数化测试,允许用不同的参数多次执行同一测试。`@Parameters`注解用于提供参数集合,`@Parameterized.Parameters`中的方法返回值即为参数列表。 7. **测试超时**:`@Test(time...
除了EasyMock和JUnit,还需要PowerMock的核心库和相关的类加载器,如`powermock-api-easymock`、`powermock-module-junit4`等。 **PowerMock的扩展功能** - 模拟静态方法和类。 - 模拟final类和方法。 - 删除静态...
本书第二版针对JUnit 4进行了全面更新,涵盖了新版本的特性,如参数化测试、假设测试、异常测试等,同时讨论了如何与其他工具和框架(如Mockito、EasyMock等)集成,以实现更复杂的测试场景。 本书首先介绍了单元...