【发布时间】:2012-02-26 12:37:54
【问题描述】:
我目前有一个 Socket 类,它基本上只是 PHP 的 socket_* 函数的 OO 包装类:
class Socket {
public function __construct(...) {
$this->_resource = socket_create(...);
}
public function send($data) {
socket_send($this->_resource, $data, ...);
}
...
}
我认为我不能模拟套接字资源,因为我使用的是 PHP 的套接字函数,所以现在我不知道如何可靠地对这个类进行单元测试。
【问题讨论】:
-
据我所知,省略的部分
...很重要 -
@KingCrunch:它们很重要,因为它们是我想要测试的,但对我的问题并不重要。因为
socket_*函数依赖于套接字资源(AFAIK 无法模拟),所以我无法可靠地测试这些方法。 -
我对一般的单元测试网络代码有一些看法,但我对 PHP 的经验为零。如果你这几天没有收到 PHP 开发者的任何回复,那我就写一些 cmets。如果您发布一些使用您的套接字类的代码会很有帮助,因为这可能会被考虑到我的答案中。
-
根据我的回答,我认为这个问题可能存在严重缺陷。如果我的答案甚至不在正确的范围内,您应该考虑对其进行大幅修改。
-
请参阅stackoverflow.com/questions/11280506/…,在那里我遇到了类似的问题,最后得到的代码显示了如何模拟 PHP 的内置函数。
标签: php unit-testing sockets phpunit