Phpunit 如何为Zend Db表行编写单元测试用例

Phpunit 如何为Zend Db表行编写单元测试用例,phpunit,zend-db,zend-db-table,Phpunit,Zend Db,Zend Db Table,我正在尝试为我的行类编写测试用例,但我真的不知道该怎么做 例如,我看到许多示例使用model和table 这个案例根本不使用Row,这个模型完全是关于getter和setter的。我不想重写Zend_Db_Table_行可以自动完成的事情 我的行类是从Zend_Db_Table_行扩展而来的,我认为没有必要编写像getter和setter这样的测试用例 我的大多数row课程如下 class App_Table_Row_User extends Zend_Db_Table_Row_Abstract

我正在尝试为我的行类编写测试用例,但我真的不知道该怎么做

例如,我看到许多示例使用model和table

这个案例根本不使用Row,这个模型完全是关于getter和setter的。我不想重写Zend_Db_Table_行可以自动完成的事情

我的行类是从Zend_Db_Table_行扩展而来的,我认为没有必要编写像getter和setter这样的测试用例

我的大多数row课程如下

class App_Table_Row_User extends Zend_Db_Table_Row_Abstract {

}

然后,为了获得更好的测试用例覆盖率,我应该为上述类编写什么样的测试用例?

我认为您需要填充对象的属性(表的列名=>值)并为自定义方法运行测试

Zend_Db_Table_Row_抽象构造函数有一个参数-具有以下键的关联数组:

  • 桌子
  • 资料
  • 储存
  • 只读
要构建对测试对象有用的对象,您至少应该使用“数据”条目。它也是关联数组。“数据”数组的列名作为键,行数据作为值。因此,测试对象设置可能如下所示:

   $this->object = new App_Table_Row_User(     
     array(
       'data' => array(  
         'username' => 'Jon Doe',  
         'password' => 'qwerty',  
         'email' => 'j.doe@example.com'  
       )
     ) 
   );
如果需要类似于
fetchNew
返回对象的内容,可以将
NULL
作为“数据”数组项中的值传递。
如果您使用的是“save”或任何需要表模型的方法,我建议使用mock/stub对象并将其作为构造函数中的“table”参数传递。您可以通过这种方式控制任何与Db相关的操作

希望有帮助:)