kiral的执着之道
一个有故事的人
posts - 10,comments - 0,trackbacks - 0

安装步骤

1: 安装数据库,mingle只支持两种数据库,postgresql8.3/8.4和Oracle。

2: 在数据库里建一个数据库,名称叫“mingle”

3: 安装mingle。安装完毕之后mingle会给出一个访问地址。 (没有安装成功会看不见这个访问地址)

4:访问mingle提供的地址,进行相关配置。

5: 安装完成之后注册mingle。

6: 注册码为

 

--- License key starts below this line--- XX05IkcLVx8D4lzyxbO/AoNcsOsJEA0fvRqH/74kSmAyPRCjTQhIcX9ki+n6 rXxe2Cc0TOQLNuVW5IkZ61KUNRf5lClm/0Y2L7Rx4PsDZNMKDBPKRhgc+d4k /oGwcJpUj46txnkKFARKQwkeBcR8MAZyNnliTjKot+IOs3QnrwciMbmgbHsc qCQpJedF0ukX+mXX+/PtWerw8pRozFVpKm1zEkqLXSNrimeJJxdhgkNpvvt5 Kvip1Fi5PHpXCDRa3FjsQT9+wsY+3OPjPCDAXCSaC/a39VGZhmMkPXLnNsVj z7sUDHKNJcs3rq7fyemutVFqDfIbi4pPdMTgOlnhQw== --- License key ends above this line--- 

This License is valid for the following terms: 

* Licensee = tengfei fang

 

其他说明

1:mingle3.2不支持IE8

2:mingle3.2对中文支持不理想,如不能上传中文附件。

3:硬件环境要求为:内存2G



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-05 21:50 方腾飞 阅读(446) | 评论 (0)编辑 收藏

总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充!

 

测试需要注意的问题

1:测试需要涵盖所有的业务逻辑: 自动化测试不需要覆盖所有的代码,但需要覆盖所有的业务逻辑,因为一处的修改可能造成其他业务逻辑的不可用。考虑所有情况如单个删除,批量删除。一对一移动,多对多移动。
2:浏览器:测试产品支持的浏览器,具体到浏览器版本号,如支持IE6,IE7和IE8。
3:分辨率:测试产品支持的分辨率,如支持1024X768以上的分辨率。
4:现场环境测试:一部分功能出现问题,可能是现场环境导致,所以必须在现场环境进行严格测试,如现场网络问题,数据库所在硬盘满了。
5:原则上测试代码应该覆盖所有的业务逻辑,但是基于投入产出比的考虑(所有的代码都写测试,代价太大,效果不一定更好),可以只在核心和你需要验证的业务逻辑上写测试代码。 测试主要是验证各种输入是否得到预期的输出,那么只需要提供几种常见的输出进行验证就可以,注意测试的输入是无限的,所以就算做了自动化测试,也不能完全保证程序没有问题。
6:建议使用TDD按照业务场景来进行测试,用户如何使用我们的功能,我们就写哪些测试代码,这样能够帮助我们按需开发代码和做有效的测试。 TDD只需覆盖所有的业务代码,并不需要覆盖所有的代码,所以建议在服务层做TDD。
 
使用SVN:
1:提交注释:提交代码需要提交注释。注释主要是方便团队成员知道你提交了什么和代码回滚,如当出现重大错误的时候能回退到某一版本。
2:代码提交和更新:为了减少冲突,建议每天上班之后更新程序,下班之前必须将稳定的程序提交,最好是做整体提交,有时候就是因为少提交了一个类导致编码错误。
3:少做全文格式化:全部格式化是最容易造成冲突的,所以假如当前类还有其他人在维护,建议不要做全文格式化,可以选中你自己的代码,做局部格式化。
 
编写代码:
1。警告:警告有时候也是很有用的,为了避免有用的警告被人忽略,代码里不允许出现警告。有警告的地方注释掉。
2:编码:先理清需求再写代码,可以先写注释再写代码,也可以用TDD的方式。
3:TODO:可以在未完成和存在坏味道的代码里加上TODO注释,以便下次解决。
4:多用快捷键,少用鼠标: 如Eclipse自动填充geter和seter的快捷键是alt+shirft+s后点r。
 
前端开放:
1:尽量用百分比:窗口和表格的宽度和长度尽量用百分比定义,而不用像素,用以在不同的分辨率下达到同样的效果。
2:使用FireBug和HTTPwatch调式样式和脚本
3:使用Fontpage做一些前端测试。如Flash遮住Iframe的问题。
 
Flex工程编译缓慢的解决方法:
1:将Flex工程按照模块拆分为多个工程。
2:AS文件不要经常修改。因为编译as文件很慢,但编译mxml还是很快的。
 
Flex模拟数据测试
我们可以在不启动服务器的情况下就对Flex程序进行测试。方法是是首先新建一个文件,名字叫XX.action,里面存放JSON数据或者XML数据,让Flex程序直接与这个XX.action进行通讯。可以在公共通讯方法上做一个开关,可以随时切换模拟数据和真实数据,用于客户演示和现场使用两种场景。
 
调式Flex 
调试的时候可以直接在URL后面加上?debug=true#
 
Flex的性能调优
我觉得Flex的垃圾回收不是很好,内存很难被回收掉,所以自己做了下Flex的性能监控,发现性能主要消耗在表格里带图片的渲染器,每当我滚动表格的时候,Flash会重新渲染图片生成新的对象,而旧的对象没有这么快被回收,内存会直线上升。
Flex IDE提供Flex profile插件进行性能监控,性能监控分为内存监控CPU监控。 进入Eclipse的“Flex Profile”视图,点击“Profile”。 新建一个监控的swf,然后双击这个SWF。 系统会自动弹出IE,访问你所监控的SWF。


已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-04 01:13 方腾飞 阅读(136) | 评论 (0)编辑 收藏

名词解释:

  • Junit:众所周知的单元测试。 官方网址:http://junit.sourceforge.net/。Junit从4.0开始提供基于注解的配置方式。
  • Dbunit: 一个针对数据库测试的框架,通过Excel准备数据并插入数据库。官方地址:http://www.dbunit.org/
  • TestNG:从字面上可以理解为下一代单元测试,和Junit的功能有一部分重叠和区别。TestNG也有Eclipse插件,官方地址http://testng.org/doc/index.html
  • Unitiles: 让单元测试变得更加容易和可维护,Unitils构建在DBUnit之上并与JUnit和TestNG相结合。官方地址:http://www.unitils.org
  • Jmock:JMock是一个JAVA开发包,它支持Mock(模拟)对象机制的TDD(测试驱动开发),官方地址:http://www.jmock.org/


什么是Jtester?
jTester是一个基于java的单元测试框架。开源地址:http://code.google.com/p/java-tester/

为什么要用Jtester?

JTester是站在众多巨人肩膀上的单元测试框架,集成了Junit4.5,dbunit2.4.3,unitils2.2,JMOCK2.5和TestNg5.1这些优秀的开源框架,并在这些框架上做了扩展,使得单元测试更加方便和强大。

Jtester带给了我们什么?

1、在unitils的基础,集成了jmock功能
2、在hamcrest断言的基础上,实现了fluent interface断言
3、改造了jmock expectation参数断言为fluent interface形式
4、录制对象:提供了将普通的pojo对象序列化到文件,然后再从文件中反序列化回来的功能,用于在对象复杂的情况下,直接录制接口(远程接口)调用返回的对象,以供下次测试或调试使用。
5、数据测试:使用wiki代替xml来准备测试数据。比dbunit更快准备数据。
6、实现了更加丰富的断言。比junit的断言多。
7、提供了hibernate annotation环境下,直接使用内存数据库进行db测试。
8、提供了hibernate annotation环境下,Open Test in Session的实现。
以上8大特性来自于官方,我稍加了点说明和整理。 

 
七步进入Jtester世界。 下面让我们花一个泡面的时间来学习下Jtester吧。

import mockit.NonStrict;

import org.jtester.testng.JTester;
import org.jtester.unitils.jmockit.MockedBean;
import org.testng.annotations.Test;
import org.unitils.spring.annotation.SpringApplicationContext;
import org.unitils.spring.annotation.SpringBean;

/**
 * Jtester测试例子,按照注释顺序学习
 * 
 * @author tengfei.fangtf
 */
@SpringApplicationContext( { "applicationContext.xml" })
// 1.@SpringApplicationContext:加载Spring 配置文件,所有测试相关的bean都在这个容器中;
public class BusinessTestCase extends JTester// 2.JTester:要使用JTester
// 提供的功能,需要继承此基类;
{

	@SpringBean("businessService")
	// 3.@SpringBean:从容器中取出指定id 的bean 并注入到测试类中
	private AppInternalService businessService;

	@MockedBean
	@NonStrict
	// 4.@Mocked @MockedBean:mock 出一个对象,并将该对象与Spring 容器结合,实现Autowired;
	private OneHessianServiceClient hessianClient;

	@Test(groups = { "FirstTestGroup" })
	// 5.@Test;TestNG 的注解;指明此方法为一个TestCase;
	public void testBusinessNormal() {
		new Expectations() {// 6.设置mock 对象的期望返回值
			{
				hessianClient.hessianServiceInvorke(anyString);
				result = "HH";// 那么执行这个方法,永远都返回HH
			}
		};

		String returnResult = businessService
				.bussinessService("Sample Business!");
		System.out.println("\n ---> " + returnResult);// 输出HH
		want.string(returnResult).notNull();// want:JTester 框架提供的强大的断言;
	}

}

 



已有 8 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐



posted @ 2011-02-04 00:31 方腾飞 阅读(1328) | 评论 (0)编辑 收藏