论坛首页 编程语言技术论坛

色色写的简易PHP单元测试框架 Kenxu_Uint v0.1

浏览 5392 次
精华帖 (0) :: 良好帖 (3) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-09-10   最后修改:2010-09-10
PHP

色色写的简易PHP单元测试框架 Kenxu_Uint v0.1发布了,

 

呵呵呵,终于可以不用PHP UNIT了 虽然很强大 但是很麻烦 安装的时候 日 还要pear的支持 ... 自己写了个

 

上代码看看:

 

要测试的模型类:

 

测试用例类

测试结果:

 

 

 

整个测试框架代码不超过12K,.......................

提供了一个例子,结构如下:

 

 

	function fetchBooksTest(){
		
		$books = $this->_modBook->fetchBooks() ;

		Kenxu_Unit_Assert::assertThat( count($books),array(array('equal',3, '图书个数为3')) ,'测试图书元素' );
		Kenxu_Unit_Assert::assertThat( !$books,array(array('not_empty','值不能为空')) ,'测试图书元素' );
		Kenxu_Unit_Assert::assertNotNull( !$books,'图书表中数据为空' );
	}

 

这个方法里面的

Kenxu_Unit_Assert::assertThat

原型:

static function assertThat($value,array $rules=null,$description=null)  $rules 支持多个测试条件

 

比如这样的

array(
					array('not_empty',true, '游戏名称不能为空'),
					array(array($this,'is_validname'),true,'游戏名称 不能包含特殊字符'),
					array(array($this->_modGame,'isUniqueFieldValue'),'gamename','游戏名称 已经存在'),
				)
 

 

 

 

  • 大小: 43.8 KB
  • 大小: 30.3 KB
  • 大小: 47.3 KB
  • 大小: 72.1 KB
  • 大小: 21 KB
  • 大小: 74.1 KB
   发表时间:2010-09-10  
关于大Z做的CoreAMP使用PhpUint的用法:
引用

下载完CoreAMP,以及start20100827.bat补丁。
修改这个批处理,加上PHPUnit参数
::PHPUnit命令参数,以下是示例请自行修改。
set phpunit=--bootstrap bootstrap.php --include-path ..\..\coremvc\svn\trunk ..\..\coremvc\svn\trunk\tests

在控制中心选择24即可。
0 请登录后投票
   发表时间:2010-09-10  
测试记录 sql:
DROP TABLE IF EXISTS `books`;
CREATE TABLE `books` (
  `id` int(11) NOT NULL auto_increment,
  `author_id` int(11) NOT NULL,
  `name` varchar(80) collate utf8_unicode_ci NOT NULL,
  `description` text collate utf8_unicode_ci NOT NULL,
  `created_at` datetime default NULL,
  `updated_at` datetime default NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

-- ----------------------------
-- Records of books
-- ----------------------------
INSERT INTO `books` VALUES ('1', '10', '小王子', '一直图书', null, null);



因为是一条记录 , 所以上面图中 显示 成功1次 失败两次 并标明了 失败代码的位置和行号

能对多个测试用例进行 测试 呵呵
0 请登录后投票
   发表时间:2010-09-10  
代码 正在弄 google code 申请 ...下周提供 下班了 Ooo
0 请登录后投票
   发表时间:2010-09-13  
http://code.google.com/p/kenxu-unit/

项目托管地址....

现在为 0.1的版本
0 请登录后投票
   发表时间:2010-09-13  
http://qeephp.com/projects/kenxuunittesting
0 请登录后投票
   发表时间:2010-09-14  
你这样的框架太弱了,只做这样的单元测试没有太大意义。
单元测试框架应该能够实现机制保证可以不断的重复测试。
所以构造虚拟的数据,mock等功能是必须要的。
这样的简化不符合单元测试的初衷
0 请登录后投票
   发表时间:2010-09-14  
嗯 说的很对 后续版本会跟上的 主要是项目应用 随着项目 这个东西功能会扩充的...
0 请登录后投票
   发表时间:2010-09-14  
我个人因为之前没有在大公司呆过,也没有做过大型网站项目的经验,期待大家教我...
0 请登录后投票
   发表时间:2010-10-13  
引用
/**
* Sqlobject 适配器,建立在框架的数据库操作基础上的SQL抽象组件
*
* <code>
*     $sqlSelectInst = Kenxu_DB::getDBO($dbDsn)->getSqlobjectInstance()
*         ->newInstance('select','authors.*,books.*','users,books',array(
*             'authors.id' => 'books.author_id'
*         );
*  $sqlInst->limit($offset,$length);

* </code>
*
*
* @author KenXu
* @date: 2010-7-22 上午11:54:26
*/
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics