- 浏览: 44922 次
- 性别:
- 来自: 西安
最新评论
-
tsyj810883979:
/**
* The underlying map. ...
ConcurrentSkipListSet的add(E e)方法注释误人子弟! -
疯狂的草儿:
lz 在写单元测试的时候 以上的都用上了
Jmockit实用技巧 -
ryhome:
jasin2008 写道lz有没有在eclipse中debug ...
Jmockit实用技巧 -
jasin2008:
lz有没有在eclipse中debug方式来运行
Jmockit实用技巧 -
bcw104:
受益了...苦于python的编码问题,特别是跟wxpytho ...
Python与Unicode
文章列表
前言
Jmockit是一个超强大的ut mock工具, 与其他mock工具最大的特点是可以对final类, 静态方法进行mock! 这是其他mock工具不可比的. 这也成为我们选它做ut的原因. 多种mock工具特色比较:
http://code.google.com/p/jmockit/wiki/MockingToolkitComparisonMatrix
一 jmockit加载注意事项
1 由于jmockit用到了jdk1.5的instrument特性, 所以必需用1.5以上的jdk运行
2 如果junit版本是4.x, 需要4.8以上的版本
在开发调测过程遇到线程非正常阻塞的情况是在所难免的, 有时是死锁, 有时是不正确的程序逻辑. 例如:
package demo;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.LinkedBlockingQueue;
public class Main {
private static final String ...
一个项目用到ConcurrentSkipListSet.add(E e)方法,过程中总觉得元素添加数量有问题,故调试之。查看add()方法的javadoc,其注释为:如果此 set 中不包含指定元素,则添加指定元素。更确切地讲,如果此 set 不包含满足 e.equals(e2) 的元素 e2,则向 set 中添加指定的元素 e。如果此 set 已经包含该元素,则调用不更改该 set 并返回 false。根据注释,只要元素的equals()方法判断不相等就能加入到Set中,可调试发现不是这么回事:
public boolean add(E e) {
return m.putIf ...
Spring DM中整合CXF-DOSGi
最近有需要用到OSGi+REST+JSON的架构组合,做了一些技术验证。这里将总结的一些经验记录下来。
OSGi框架选型:
使用了Spring-DM,主要用它的服务发布功能
一、RESTful框架选型
CXF、RestLet、RestEasy、Jersey。4个REST框架都是JAX-RS(JSR311)的实现,验证期间对它们做了一个比较
CXF
RestLet
a.管理原则:
1)估算,进度安排
2)计划制定:估算项目时间进度
确定参与人数,技能,何时加入,具体人选
确定运作方式
确定采用的生命期模型
3)跟踪(项目可视度)
4)度量
b.技术原则:
1)需求管理:分析方法,建模,沟通,需求与项目生命周期关系
2)设计
3)构件:主要指编码实践
4)配置管理:CI,版本控制
c.质量保障:
1)识别重点模块:我的经验是需求依 ...
User Story写作模板
- 博客分类:
- 项目管理
1.概述:as
i want
so
2.规格详细描述:
现状
应用场景
具体要求
界面原型
对外接口
3.验收准则
4.story符合INVEST原则:
独立
可用于沟通
有价值
可估计
足够小(500行)
可测试
保存在workspace/.metadata/.plugins/org.eclipse.debug.core/.launches下。
项目配置时最好将这个run文件移动到工程目录下(也就是.classpath所在目录),这样一处配置好工程放入svn,极大的方便了开发组其他成员的环境搭建。
1. 测试类如果继承org.jmock.MockObjectTestCase,mock出来的类只能模仿Interface,要模仿具体类需要使用org.jmock.cglib.MockObjectTestCase(需要引用cglib-nodep-2.x.jar);
2.静态方法不能模拟,有必要时需要重构代码,这也是TDD代码可测性的要求;
3.方法参数如果是数值类型(int等),with()方法不能用isA(int.class)做判断,要么用with(eq(value)),要么使用withAnyArguments()方法;
4.jMock2.x一个Mockery实例可以mo ...
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.events.ModuleEvent;
import mx.modu ...
import os, zipfile
from os.path import join
def zipfolder(foldername, filename, includeEmptyDIr=True):
empty_dirs = []
zip = zipfile.ZipFile(filename, 'w', zipfile.ZIP_DEFLATED)
for root, dirs, files in os.walk(foldername):
empty_dirs.extend([dir for dir in dirs if os.listd ...
- 2009-11-22 12:27
- 浏览 3713
- 评论(0)
chr(i) 数字转ascii范围的字符
unichr(i)数字转unicode字符
ord(c) 字符转成unicode码点
- 2009-11-22 11:46
- 浏览 3143
- 评论(0)
I. python默认编码
python2.3以后的默认编码是ascii
python3.0开始默认编码为utf-8
改变默认编码方法:
#python解释器启动时会自动删除sys模块的setdefaultencoding()方法, 使得运行时不能调用, 所以需要通过reload(sys)重新加载
- 2009-11-20 10:35
- 浏览 1615
- 评论(1)
记录日常遇到的python问题,随时更新
1.python可以import压缩包中的脚本,只要这个压缩包路径在sys.path中;
2.locale模块的getdefaultlocale()有可能返回None!UNIX系统LANG=C时:
import locale
locale.getdefaultlocale()
(None, None)
3.python彻底删除import的模块。import Module后使用del Module只删除了变量引用,实际对象引用还在sys.modules中。要使用del sys.modules['Module']删除对象引用。
...