如何解决帮助设计和更重要的是单元测试 类似策略模式
| 我正在研究简单的基准“框架”(原因:无聊和实践)。 现在,我正在设法使自己的想法绕开。 第一件事:class DataManager {
private $persistanceStrategy;
public function __construct(IPersistence $persistenceStrategy) {
$this->persistanceStrategy = $persistenceStrategy;
}
public function saveData() {
$this->persistanceStrategy->saveData($params);
}
public function getData() {
$this->persistanceStrategy->getData($params);
}
}
interface IPersistence {
public function saveData(array $params);
public function getData(array $params);
}
class XMLPersistence implements IPersistence {
// Params would contain something like path to the
// xml file,and unique name of some tag
public function saveData(array $params) {
// write something to xml file
}
public function getData(array $params) {
// get something from xml file
}
}
class DBPersistence implements IPersistence {
// $params would contain unique name of data that is needed
// and data for db connection
...
}
class SessionPersistence implements IPersistence {
....
}
问题:
有没有设计这部分代码的更好方法。
有人将如何对DataManager类和“策略”类进行单元测试?
解决方法
在这里使用策略模式对我来说很有意义,因此我没有任何改进建议。
这是使用一种方法来测试DataManager类的博客。基本上,您给它一个模拟策略类,并确保确实调用了正确的策略方法。
测试你的嘲弄
我认为测试持久性类将很简单,确保XMLPersistence生成预期的xml数据,DB将数据放入预期的数据库中,并且可能针对预期的序列化声明Session。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。