我正在尝试为我的Row类编写测试用例,我真的不知道这样做的正确方法是什么。
我见过很多使用模型和模型的例子。表,例如http://techportal.inviqa.com/2010/12/07/unit-testing-databases-with-zend-framework/。
案例根本不使用Row,模型完全是关于getter和setter的。我不想重写像Zend_Db_Table_Row这样的东西可以自动完成。
我的行类是从Zend_Db_Table_Row扩展的,我认为没有必要编写像getter& amp; setter方法。
我的大多数行类都跟着
class App_Table_Row_User extends Zend_Db_Table_Row_Abstract {
}
然后,为了获得更好的测试用例覆盖率,我应该为上面的类编写什么样的测试用例?
答案 0 :(得分:3)
我认为您需要填充对象的属性(表的列名=>值)并运行自定义方法的测试。
Zend_Db_Table_Row_Abstract构造函数有一个参数 - 带有以下键的关联数组:
要构建对测试对象有用,您至少应使用“数据”条目。它也是关联数组。 “data”数组将列名称作为键,将行数据作为值。因此测试对象setUp可能如下所示:
$this->object = new App_Table_Row_User(
array(
'data' => array(
'username' => 'Jon Doe',
'password' => 'qwerty',
'email' => 'j.doe@example.com'
)
)
);
如果您需要与NULL
返回对象类似的内容,则可以将fetchNew
作为值传递到“数据”数组条目中。
如果您使用“save”或任何需要表模型的方法,我将建议使用mock / stub对象并将其作为构造函数中的“table”参数传递。您可以通过这种方式控制任何与Db相关的操作。
希望有帮助:)