【发布时间】:2013-02-22 21:55:49
【问题描述】:
我正在重构一个类,同时为它编写单元测试。 有一种情况是我的一个方法完全调用了另一个对象的方法,这些方法注入到我正在测试的这个类中。
所以我必须模拟我注入类的对象。
现在,问题是,是否值得为这个特定方法编写单元测试? 编写单元测试似乎很奇怪,它调用其他对象的方法而该对象本身必须被模拟,那我为什么要测试这个方法呢?
测试的目的不是检查方法的功能是否按预期工作吗? 如果是,那么当我嘲笑它所拥有的一切并且该特定方法没有任何东西可以测试时,我为什么要测试?
我真的很困惑!
我坚持的方法是这个(用于自定义会话处理):
public function write($sessionId, $sessionData)
{
$sth = $this->databaseConnection->prepare("INSERT INTO `{$this->DBTableName}` (`session_id`,`session_name`,`session_data`) VALUES(:session_id, :session_name, :session_data) ON DUPLICATE KEY UPDATE `session_data`=:session_data;");
$sth->bindValue(':session_id', $sessionId);
$sth->bindValue(':session_name', $this->sessionName);
$sth->bindValue(':session_data', $sessionData);
return $sth->execute();
}
这里也是这段代码的链接:http://pastebin.com/1FBeU6mb
顺便说一句,我刚开始为我的课程编写测试,我是这个测试领域的初学者,没有经验。
提前致谢。
【问题讨论】:
标签: php unit-testing testing phpunit