上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 58 下一页
摘要: #include <iostream>#include <vector>using namespace std;int main(){ vector< pair<int, int> > pvec; //如果写成vector<pair<int, int>> pvec;编译器会误认为流运算 pair<int,int> par; par.first = 9; par.second = 23; pvec.push_back(par); pair<int, int> par2 = *pvec.begin(); 阅读全文
posted @ 2011-08-01 17:42 java简单例子 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 这篇文章将继续上一篇的问题,实现我们的iunit框架与Guice框架的整合,这个模块主要用于那些用Guice来做DI容器的项目做测试用的,包括guice框架的启动与在测试类中自动注入@Inject标注的字段1.目标测试类的庐山真面目package com.crazycoder2010.guice.sample; import org.junit.Test; import com.crazycoder2010.iunit.AbstractIUnitTestCase; import com.crazycoder2010.iunit.GuiceStratupListener; import co.. 阅读全文
posted @ 2011-07-31 11:51 java简单例子 阅读(544) 评论(0) 推荐(0) 编辑
摘要: 上篇文章罗列了整个框架的核心接口,这篇文章将提供IunitExecutionListener的一个实现类-DatasetProviderListener,主要用来将测试数据插入到数据库中,待测试完成后自动删除数据1.dbunit为核心的db测试 dbunit是个很好的数据库测试框架,提供了多种准备数据的操作策略来简化测试数据的插入或更新操作,参考http://www.dbunit.org/components.html#deleteall操作描述DatabaseOperation.UPDATE使用准备数据更新现有db中的数据(根据准备数据主键ID值),如果数据库中不存在准备数据中的ID,报错退 阅读全文
posted @ 2011-07-30 21:48 java简单例子 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 第二节里我们介绍了iunit整体的设计思路以及核心类之间的关系,这篇将以源码+解释的方式来演示核心类的实现方式1.IUnitRunner 类这个类是测试的入口类,直接继承自junit4.8的BlockJunit4ClassRunner,在构造函数里,我们把iunit框架的扩展功能添加了进来,因为整个框架呃设计都是基于Listener的,所以只需要把监听器在框架运行的时候加载进来即可--见构造函数,listener的注册是通过注解来进行的,因为测试类本身可能会有继承关系,因此需要遍历父类中的Listener,把子类+所有父类中的Listener合并起来,当然还要注意剔除掉重复注册的Listene 阅读全文
posted @ 2011-07-30 11:56 java简单例子 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 第一节里介绍了我们框架设计的目标,这篇主要介绍的是这个框架主要的设计思路和关键技术点1.如何扩展junit的功能,使junit在启动时可以做一些我们定制化的功能? junit4建立了以Runner为核心的测试框架运行机制,在junit3的版本中,我们知道要运行一个junit测试用例,必须继承一个TestCase基类,junit4则不需要这个限制,只需要标注一下要运行测试的方法为@Test就可以了,怎么做到的呢?就是这个Runner机制,这里不介绍Junit4的运行机制,可以从org.junit.runner.BlockJUnit4ClassRunner中得到答案,像spring test框架也 阅读全文
posted @ 2011-07-30 09:28 java简单例子 阅读(353) 评论(0) 推荐(0) 编辑
摘要: 1.先从问题说起 写过程序的同学都知道,做好单元测试提高代码覆盖率对整个项目意味着什么,但是做好单元测试并不是一件那么简单的事情,因为实际业务逻辑和运行环境的复杂性,导致了我们的单元测试代码不可能都像那些helloWord那么简单,比如现在的业务系统绝大多数都是基于数据库的,怎么做单元测试才能做到每次做单元测试时都是一个干净的测试环境-即上次单元测试的数据库操作不会影响本次测试的结果(比如一个createUser操作,第一次单元测试运行成功了,但是第二次运行却失败了,因为代码里做了重名判断),还有web层的单元测试如何进行,web框架如何启动,那些万恶的httpServletRequest,H 阅读全文
posted @ 2011-07-29 00:12 java简单例子 阅读(278) 评论(0) 推荐(0) 编辑
摘要: #include <iostream>#include <vector>using namespace std;int main(){ vector<int*> b; for(int i=0; i<5; i++) { int j = i; //j始终是同一个地址 int *jp = &j; b.push_back(&j); int* p = *(b.end()-1); int value1 = *p; cout << value1 << " "; } cout << endl;.. 阅读全文
posted @ 2011-07-28 23:01 java简单例子 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 下面一段源自huffman编码,其中体现了堆的具体过程。weight为类的成员变量。void HuffmanTree::CreateDate(){ weight = new int[5];//程序在开始时,weight指向不确定位置 //直到CreateDate运行完成,将所有数据存在连续堆中,然后将weight指向这片区域。 weight[0] = 10; weight[1] = 5; weight[2] = 7; weight[4] = 13;}程序开始,初始化时,weight指向不确定位置,当上面程序在内存中运行时,将各个数据存储在堆中,运行完成后,将... 阅读全文
posted @ 2011-07-28 12:38 java简单例子 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 赫夫曼编码是该思想的应用,将频率出现较多的字母定义为长度较短的二进制,将出现频率小的定义为长度大的二进制,这样有效的提高了存储能力,赫夫曼树的用处还很多,这种思想可以提高程序运行效率,如在多个判断语句中,可以将访问较多的条件放在第一个位置,减小其访问权重。#ifndef HUFFMANNODE_H#define HUFFMANNODE_H#include <iostream>using namespace std;class HuffmanNode{public: HuffmanNode(); HuffmanNode(int weight); void SetWeight(int 阅读全文
posted @ 2011-07-28 11:26 java简单例子 阅读(210) 评论(0) 推荐(0) 编辑
摘要: JDK1.5以后提供了导入静态方法的功能,例如,我们可以通过以下方式导入Matchers.equalToimport static org.hamcrest.Matchers.equalTo;注意有个static静态标识符用的时候直接使用就可以了,而不用再去调用Matches.equalTo()equalTo("Hello, Kevin");等价于Matches.equalTo("Hello, Kevin")问题:eclipse中的alt+/快捷键可以提供代码提示功能,特别我们在写类的时候,很有用,但是很多时候我们想让eclipse也能直接提示这些常用静 阅读全文
posted @ 2011-07-26 22:22 java简单例子 阅读(2385) 评论(0) 推荐(0) 编辑
上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 58 下一页