??xml version="1.0" encoding="utf-8" standalone="yes"?>91久久久久久久,国产精品自拍小视频,国产一二三区在线视频 http://www.aygfsteel.com/stevenjohn/category/52939.html那些青春的岁?/description>zh-cn Tue, 13 Nov 2012 20:59:56 GMT Tue, 13 Nov 2012 20:59:56 GMT 60 java实现多个文g压羃 http://www.aygfsteel.com/stevenjohn/archive/2012/11/13/391278.htmlabin abin Tue, 13 Nov 2012 15:25:00 GMT http://www.aygfsteel.com/stevenjohn/archive/2012/11/13/391278.html http://www.aygfsteel.com/stevenjohn/comments/391278.html http://www.aygfsteel.com/stevenjohn/archive/2012/11/13/391278.html#Feedback 0 http://www.aygfsteel.com/stevenjohn/comments/commentRss/391278.html http://www.aygfsteel.com/stevenjohn/services/trackbacks/391278.html import java.io.*; import java.util.*; import java.util.zip.ZipOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; public class FileMgr { public FileMgr() { } /** * 压羃文g * @param srcfile File[] 需要压~的文g列表 * @param zipfile File 压羃后的文g */ public static void ZipFiles(java.io.File[] srcfile, java.io.File zipfile) { byte[] buf = new byte[1024]; try { // Create the ZIP file ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); // Compress the files for (int i = 0; i < srcfile.length; i++) { FileInputStream in = new FileInputStream(srcfile[i]); // Add ZIP entry to output stream. out.putNextEntry(new ZipEntry(srcfile[i].getName())); // Transfer bytes from the file to the ZIP file int len; while ( (len = in.read(buf)) > 0) { out.write(buf, 0, len); } // Complete the entry out.closeEntry(); in.close(); } // Complete the ZIP file out.close(); System.out.println("压羃完成."); } catch (IOException e) { e.printStackTrace(); } } /** * 解压~?br /> * @param zipfile File 需要解压羃的文?br /> * @param descDir String 解压后的目标目录 */ public static void UnZipFiles(java.io.File zipfile, String descDir) { try { // Open the ZIP file ZipFile zf = new ZipFile(zipfile); for (Enumeration entries = zf.entries(); entries.hasMoreElements(); ) { // Get the entry name ZipEntry entry = ( (ZipEntry) entries.nextElement()); String zipEntryName = entry.getName(); InputStream in = zf.getInputStream(entry); // System.out.println(zipEntryName); OutputStream out = new FileOutputStream(descDir + zipEntryName); byte[] buf1 = new byte[1024]; int len; while ( (len = in.read(buf1)) > 0) { out.write(buf1, 0, len); } // Close the file and stream in.close(); out.close(); System.out.println("解压~完?"); } } catch (IOException e) { e.printStackTrace(); } } }
本文来自CSDN博客Q{载请标明出处Q?a >http://blog.csdn.net/Jonthanoscar/archive/2007/08/09/1733812.aspx
试ҎQjunit4试Q:
package lc.abin.lee.basic.zip.test;
import java.io.File;
import lc.abin.lee.basic.zip.FileMgr;
import org.junit.AfterClass; import org.junit.BeforeClass; import org.junit.Test;
public class testFileZip { @BeforeClass public static void init(){ System.out.println("initialize zip"); } @Test public void testCreateZIP(){ File in=new File("D:\\abin.zip"); File[] file=new File[]{in}; File zip=new File("D:\\abin.zip"); FileMgr mgr=new FileMgr(); mgr.ZipFiles(file, zip); } @Test public void testParseZIP(){ File in=new File("D:\\abin.zip"); String filePath="D:/home/"; FileMgr mgr=new FileMgr(); mgr.UnZipFiles(in, filePath); } @AfterClass public static void destroy(){ System.out.println("destroy zip"); } }
]]>Junit 试Ҏ http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390680.htmlabin abin Fri, 02 Nov 2012 06:40:00 GMT http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390680.html http://www.aygfsteel.com/stevenjohn/comments/390680.html http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390680.html#Feedback 0 http://www.aygfsteel.com/stevenjohn/comments/commentRss/390680.html http://www.aygfsteel.com/stevenjohn/services/trackbacks/390680.html 本文介绍在NetBeans开发工具中~写和运行JUnit单元试的基部分。测试一个应用程序是开发周期的一部分Q编写和l护单元试可以保证你源代码中独立的Ҏ可以正常工作?/p>
NetBeans IDE 6.9 中包含JUnit 3.5和JUnit 4.5两个版本Q可自行选择。(关于使用JUnit的更多信息,参考www.junit.org。)
目录 一、新建Java试?br />二、创建Javacd 三、JUnit注释 四、简单的JUnit4试Ҏ 五、运行测?br />
一、新建Java试?/p>用于存放JUnit试cd的包 1.叛_“试?#8221;>“新徏”>“Java?#8221;?br />2.?#8220;新徏Java?#8221;对话框中Q输入包名,选择位置Q位|最好ؓ“试?#8221;Q以便于区分源码包与试包)?br />3.“完成”卛_?br />
二、创建javacd试
用于为javacd文g创徏试?br />1.叛_要创建测试的cLӞ选择“工具”>“创徏 JUnit 试”?br />2.?#8220;选择 JUnit 版本”对话框中Q选择“JUnit 4”?br />3.弹出“创徏试”对话框,?#8220;创徏试”对话框中可以创徏的测试命名、选择位置Q最好选择试包)?br />注:NetBeans中第一ơ?IDE 创徏试框架ӞIDE 会提C选择 JUnit 版本。选择JUnit4后会自动删除JUnit 3库,下次再创建时Q会默认创徏JUnit4的测试?br />
三、JUnit注释
JUnit注释跟在试Ҏ前,Ҏ试方法的cdq行说明?br />
1.JUnit试注释
试注释 Q@Test 标注方法标Cؓ试Ҏ?br />
2.试cR测试的初始化函数和释放Ҏ
?JUnit 4 中,可以使用标注来标C下类型的初始化函数和释放Ҏ?br />试cd始化函数 Q@BeforeClass 标注方法标Cؓ试cd始化Ҏ。测试类初始化方法只能运行一ơ,q且在测试类中的M其他Ҏ之前q行?试c释放方?/strong>Q@AfterClass 标注方法标Cؓ试c释放方法。测试类释放Ҏ只能q行一ơ,q且在测试类中的M其他Ҏ完成之后q行?试初始化函?/strong>Q@Before 标注方法标Cؓ试初始化方法。测试初始化Ҏ在测试类中的各测试用例之前运行。运行测试不需要测试初始化ҎQ但是,如果需要在 q行试之前初始化一些变量,则可以用测试初始化Ҏ?试释放Ҏ Q@After 标注方法标Cؓ试释放Ҏ。测试释放方法在试cM的各试用例之后q行。运行测试不需要测试释放方法,但是Q可能需要用释放方?br />来清理运行测试用例时所需的Q何数据?
3.用试注释
用试 Q@Ignore 标注该Ҏ用?br />
四、简单的JUnit4试Ҏ
创徏javacd试后,分生成该cL有方法的试Ҏ。(试Ҏ很多Q?br />断言 Q?br />1.assertEquals( 期望? 实际?) // 实际值用被测试方法代替时是对该Ҏ的测?br />2.assertTrue( 实际?) 3.assert False(实际? 注:此方法?JUnit assertTrue ?assertFalse Ҏ来测试各U可能的l果。要通过此方法的试QassertTrue 必须全部?trueQƈ?assertFalse 必须 全部?false?br />时 Q?br />4.@Test(timeout=1000) // 时被设|ؓ 1000 毫秒?br />异常 : 5.@Test(expected=IllegalArgumentException.class) // q回异常用试 : 6.@Ignore // 在@Test 上方d @Ignore 标注来禁用测试?br />
五、运行测?/p>1.q行单个试Q?br />叛_要运行的试Q选择“q行文g”?br />2.q行整个试Q?br />1)叛_要运行的试包,选择“新徏”>“其它”打开“新徏向导”?br />2)cd选择“JUnit”Q文件类型选择“试套g”Q点?#8220;下一?#8221;?br />3)输入试名,选择位置Q及要测试的包?br />4)“完成”卛_?br />此时q行q个试套g卛_q行包内的所有测试?br />
]]> Junit单元试框架介绍 http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390676.htmlabin abin Fri, 02 Nov 2012 06:16:00 GMT http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390676.html http://www.aygfsteel.com/stevenjohn/comments/390676.html http://www.aygfsteel.com/stevenjohn/archive/2012/11/02/390676.html#Feedback 0 http://www.aygfsteel.com/stevenjohn/comments/commentRss/390676.html http://www.aygfsteel.com/stevenjohn/services/trackbacks/390676.html 软g试 ___________________________________________________________________________ Unit Test是由E序员本w来~写的? 以下介绍Junit单元试框架Q官|地址www.junit.org JUnit是由 Erich Gamma ?Kent Beck ~写的一个回归测试框Ӟregression testing frameworkQ。Junit试是程序员试Q即所谓白盒测试,因ؓE序员知道被试的Y件如何(HowQ完成功能和完成什么样QWhatQ的功能? Junit3.x ___________________________________________________________________________ Junit3.x中用包junit.framework.* 1. 必须l承TestCasec? public class CalculatorTest extends TestCase { private Calculator cal; public CalculatorTest() { } public CalculatorTest(String name) { super(name); } public void setUp() { System.out.println("...........setUp.............."); cal = new Calculator(); } public void testAdd() { int result = cal.add(1, 2); Assert.assertEquals("计算dp|", 3, result); } public void tearDown() { System.out.println("........tearDown........"); } } 2. 试用例QTest CaseQ是单元试的一个非帔R要的斚w? 3. 单元试主要是用来判断程序的执行l果与自己期望的l果是否一致? 4. 在Junit3.x中,试Ҏ规则定义如下Q? 1) public 2) void 3) 无参数的 4) 试Ҏ名以test开? 5. Test Case之间一定要保持完全的独立性,不允许出CQ何的依赖关系? 6. 我们不能依赖于测试方法的执行序? 7. 关于setUp与tearDownҎ的执行顺序: 1Q?setUp 2Q?testAdd 3Q?tearDown 8. Junit两种cd错误QFailure ?Error FailureQ指预期l果与实际结果不同,例如当你使用assertEquals或者assertXXXҎ断言p|Ӟ或者调用failҎQ就会报出FailureQ这时要查测试方法逻辑设计是否有误? public void testDevide() { System.out.println(".........testDevide()........"); int expected = 0; int actual = 0; try { actual = cal.devide(1, 3); } catch (Exception e) { Assert.fail("试p|"); //不应该执行这D? } Assert.assertEquals(expected, actual); } ErrorQ指E序在断a执行之前Q程序就因ؓ某种错误而引发异常,DE序l止Q例如测试方法中因抛出某个异常,使得试Ҏ无法正确执行到断aq束,q时你要查测试的Ҏ是否有未考虑到的情况而引hE突然中断? 也就是说代码中抛Z异常{媄响代码正常执行的情况Q比如ArrayIndexOfBoundsException、NullPointExceptionQ也可能是磁盘已满、网l中断等{外部环境失败所带来的媄响? 首先处理ErrorQ然后在处理Failure. 9. q行试用例 1) IDE中,如Eclipse工具已经内置了JunitQ所以可以直接在试cM鼠标右键Run--Junit Testq行? 2) 使用junit.textui.TestRunnerc运行测试类. public static void main(String[] args) { junit.textui.TestRunner.run(MyStackTest.class); junit.textui.TestRunner.run(new CalculatorTest("testAdd")); } 3) 使用TestSuite a) 一ơ可以运行多个测试类q行试 public class TestAll { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(OOOTest.class); suite.addTestSuite(XXXTest.class); suite.addTestSuite(YYYTest.class); return suite; } public static void main(String[] args) { TestRunner.run(suite()); } } b) 通过IDE自动发现suite()ҎQ必ȝ承TestCase public class TestAll extends TestCase { public static Test suite() { TestSuite suite = new TestSuite(); suite.addTestSuite(OOOTest.class); suite.addTestSuite(XXXTest.class); suite.addTestSuite(YYYTest.class); return suite; } } c) l合模式Q组合方式多元化 …… public static Test suite() { TestSuite suite = new TestSuite(); suite.addTest(new XXXTest("testABC")); // 执行testABC()Ҏ suite.addTest(YYYTest.suite()); // suite() 传回TestSuite实例 suite.addTestSuite(OOOTest.class);//自动查找OOOTestcMtestXXXҎ return suite; } 10.试之前是什么状态,在测试执行完成后应该是什么状态,而不应该׃试执行的原因到D了状态发生了变化? Junit4.x ___________________________________________________________________________ Junit4.x开始支持Annotation注解技术,在编写测试用例时化不动? Junit4.x中用的包org.junit.* Junit4.x是兼容以前版? Eclipse中自带了Junit4Q版本ؓjunit4.3.1. BC-EC工程中用的版本为Junit4.4Q目前最新版?.11 1. 无需l承TestCasec,所有被@Test注解所修饰的publicQvoidQ无参数的方法都是测试用例,Junit自动查找注解Ҏq执行测试? @Test public void testAdd() { int result = cal.add(1, 2); Assert.assertEquals("计算dp|", 3, result); } 2. 虽然Junit4.x中测试类中的Ҏ名称可以随便取,但是跟junit3.x中测试类Ҏ命名U定一_l一Ҏ名以test开头? 3. 使用@Before注解所修饰的方法同junit3.x中的setUpҎ的功能,使用@After注解所修改的方法同junit3.x试cM的tearDownҎ的功能?@Before和@After可以在多ơ指? @Before public void init() { System.out.println("...........setUp.............."); cal = new Calculator(); } @After public void destroy() { System.out.println("........tearDown........"); } 4. 通过@BeforeClass和@AfterClass注解标注publicQstaticQvoidQ无参数的类Ҏ。在所有测试方法执行之前和之后执行? @BeforeClass public static void setUpBeforeClass() { ... } @AfterClass public static void tearDownAfterClass() { ... } 5. 使用@Ignore注解所修饰的方法(可以表示未~写完该用例或者想用该用例)Q运行器会忽略该Ҏ的测试;当修饰类Ӟq行器会忽略掉所有测试方法? @Test @Ignore("未完成") public void testMultiply() { … … } Eclipse中Junit执行l果中会提示如下Q? 6. 预期异常Q? 也可以用在junit3.x中提到的fail()来测试预期抛出异常的情况? public void testDevideByZero() { Throwable tx = null; try { cal.devide(1, 0); Assert.fail("应该按预期抛出异常,试p|"); } catch (Exception e) { tx = e; } Assert.assertNotNull(tx.getMessage()); Assert.assertEquals(ArithmeticException.class, tx.getClass()); Assert.assertEquals("除数不能?Q?, tx.getMessage()); } junit4中用Test中的expected属性达到相同的功能Q代码量很? @Test(expected = ArithmeticException.class) public void testDevideByZero() throws Exception { cal.devide(1, 0); // 应该抛出异常 } 7. 使用@Test(timeout = 2000) 注解预期某些操作应该在指定时间内完成Q否则测试失败?nbsp; 单位是毫U? 8. 试q行器:可以使用@RunWith注解使用的runner. Junit4中内|的q行器有Q? a) 附带兼容junit3.xq行? org.junit.internal.runners.Junit38ClassRunner b) 参数化运行器Q可讑֮一l参敎ͼ每次q行试时自动在指定位置l予不同的参数? org.junit.runners.Parameterized c) Suiteq行器,如同Junit3.x中的TestSuite, 用于Ll合试. org.junit.runner.Suite 9. 参数化运行器Q? a) 使用注解@RunWith(value = Parameterized.class) 指定参数化运行器, b) 定义好一个方法,q回一l参数数据,使用注解@Parameterized.Parameters c) 试cL造方法中为各个参数赋|构造方法是由Junit调用的) d) Ҏ必须是publicQstaticQvoidQno-argQ返回一个Collection? e) Ҏ中每个元素必L一个一l数l,数组中第一个ؓ预期|之后参数一Q参C{? @RunWith(value = Parameterized.class) public class ParamCalculatorTest { private Calculator cal; private int expected; private int para1; private int para2; @Parameterized.Parameters public static Collection<Integer[]> getParamData() { Integer[][] data = new Integer[][] { { 5, 3, 2 }, { 3, 1, 2 }, { 2, 1, 1 } }; return Arrays.asList(data); } @Before public void init() { cal = new Calculator(); } public ParamCalculatorTest(int expected, int para1, int para2) { this.expected = expected; this.para1 = para1; this.para2 = para2; } @Test public void testAdd() { int result = cal.add(para1, para2); Assert.assertEquals(expected, result); } @After public void destory() { } } 10.Suiteq行器:在Junit4中,如果惛_时运行多个测试,需要用两个注解: @RunWith(value = Suite.class) @SuiteClasses 使用以上两个注解会通过Suiteq行器来执行试Q在SuiteClasses中指定测试类Q也可以l箋指定SuiteQ这样Junit会在LN面的试cdƈ执行? @RunWith(value = Suite.class) @SuiteClasses( { CalculatorTest.class, MyStackTest.class }) public class SuiteCalculatorMyStackTest { … … } ]]>
վ֩ģ壺
ϵ |
ѽ |
̨ |
|
ൺ |
¬ |
괨 |
Ͻ |
ɽ |
|
|
|
|
ƶ |
|
ܱ |
ϼ |
Ϫ |
|
|
|
|
Ӻ |
Դ |
|
ɳ |
÷ |
ϲ |
|
ʯ |
κ |
ӱʡ |
Ҷ |
SHOW |
|
|
ں |
|
|
봨 |
|