Delphi 的单元测试工具DUnit

Thumbnail

以前写Java时候经常使用一款单元测试工具JUnit,工作之后在用Delphi,自然也要换到Delphi下面的单元测试工具DUnit。 DUnit是XUnit家族中的一员,是Extreme Programming测试实现Xtreme Testing的一种工具。 DUnit的用法和JUnit很类似,如果有相关经验很容易上手。这里是DUnit的官方地址:http://dunit.sourceforge.net/ , 下载地址:http://sourceforge.net/projects/dunit/ 将DUnit解压至任意目录(我习惯在D:/Study/DelphiLib/),打开Delphi 7,将DUnit路径添加到 Tools- > Environment Options 里面的 Library -> Library Path,这样DUnit就安装完成了。 ...

2010-01-06 · alswl

将Python程序编译为exe可执行程序

Python很强大,这个py2exe程序能够把.py文件编译为.exe可执行文件,真是如虎添翼啊。 我注意到这个细节:这篇文章发表于 2005-6-5 23:34作者wolfg太犀利了。 原文出处:py2exe初接触(一) - Python -ChinaUnix.net py2exe是什么? py2exe是一种python发布工具,可以把python脚本转换成windows下的可执行程序,不需要安装python便可运行。 py2exe现在可以用来创建使用了wxPython, Tkinter, Pmw, PyGTK, pygame, win32com client and server 等模块的程序。 详细介绍可以看它的官方网站 http://starship.python.net/crew/theller/py2exe/ ...

2009-09-15 · alswl

使用XOM类库对Java对象进行序列化

校内工具需要保存用户名和帐号,我就想把帐号信息作为一个XiaoneiUser类,然后对其进行对象持久化。 Google下的方法有好几种方法进行持久化,JDOM, DOM4J, SAX等。我看了之后,感觉都比较麻烦,我个人比较喜欢使用jdk自带的工具,但是查阅jdk api之后,感觉使用 javax.xml.* 下工具开发更加困难。 我仅仅是需要对一个简单的对象进行持久化来保存数据,并不需要太多太复杂的功能。最后我决定使用《Thinking in Java》推荐的开源类库:XOM 猛击这里打开www.xom.nu 友情提示一下,网站可以打开,但是下载的连接貌似被墙了,至少我教育网连不上去。推荐 一个在线代理服务器古狗在线代理(猛击这里打开),通过它就可以下载类库了。 使用类库非常简单,我这里提供个小例子。XiaoneiUser类 ...

2009-06-10 · alswl

java.net.*操作session/GET/POST方法

终于又考完一门试,开始做课程设计了,结果课程设计给工作室一个尾气3个月的项目,而这次的先用我写的贴吧放上去,我变得暂时空闲了,开始着手写校内开心农场小工具- 全能拖拉机。 首先要解决的就是校内登录的问题,那就是Get/Post方法了,还有用户状态保存,就是session的操作。Java不同于C#,那位可以集成系统 的浏览器或者之间创建一个Browser。 开始写了自己的第一个版本。 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.URL; import java.net.HttpURLConnection; public class FarmerHelper { /** * @param args * @throws ProtocolException */ public static void main(String[] args) throws ProtocolException { String loginUrlStr = "http://login.xiaonei.com/Login.do"; String homeUrlStr = "http://home.xiaonei.com/Home.do"; URL loginUrl = null; URL homeUrl = null; HttpURLConnection loginConn = null; HttpURLConnection homeConn = null; try { loginUrl = new URL(loginUrlStr); homeUrl = new URL(homeUrlStr); try { loginConn = (HttpURLConnection) loginUrl.openConnection(); homeConn = (HttpURLConnection) homeUrl.openConnection(); } catch (IOException e) { print("Conn't open the url connection!"); e.printStackTrace(); } } catch (MalformedURLException e) { print("Illegal URL!"); e.printStackTrace(); return; } loginConn.setRequestMethod("POST"); loginConn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.0.10)" + " Gecko/2009042316 Firefox/3.0.10"); loginConn.setRequestProperty("Keep-Alive", "300"); loginConn.setRequestProperty("Connection", "keep-alive"); loginConn.setRequestProperty("email", "alswlwangzi@163.com"); loginConn.setRequestProperty("password", "xh77Gffb_i"); loginConn.setRequestProperty("submit", "登录"); loginConn.setRequestProperty("Keep-Alive", "300"); try { loginConn.connect(); String headerName = null; String cookie = ""; /* * for (int i=0; (headerName = * loginConn.getHeaderFieldKey(i))!=null; i++) { if * (headerName.equals("Set-Cookie")) { cookie = * loginConn.getHeaderField(i); print(cookie); } } */ cookie = loginConn.getHeaderField("Set-Cookie"); print(cookie); homeConn.setRequestProperty("Cookie", cookie); homeConn.setRequestMethod("GET"); homeConn.connect(); BufferedReader in = new BufferedReader(new InputStreamReader( homeConn.getInputStream())); String lineStr = null; while ((lineStr = in.readLine()) != null) { // print(lineStr); print(new String(lineStr.getBytes("GBK"), "UTF-8")); } } catch (IOException e) { print("conn't connect to the server!"); e.printStackTrace(); } } private static void print(Object o) { System.out.println(o); } } 想法总是好的,现实总是残酷的,调试很久,用WireShark抓包,都是有Length Required错误,这个比较头疼,我感觉是我session传递的问题(其实不是,后来发现是Post的格式问题),于是网上找来一个Session操作类。 ...

2009-06-09 · alswl