Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何(真正地)单元测试适配器_Php_Unit Testing_Sockets_Tdd_Adapter - Fatal编程技术网

Php 如何(真正地)单元测试适配器

Php 如何(真正地)单元测试适配器,php,unit-testing,sockets,tdd,adapter,Php,Unit Testing,Sockets,Tdd,Adapter,我的问题很简单,适配器(设计模式)类是否应该进行单元测试,以及如何进行单元测试 例如: 我想用PHP创建一个类ClientSocket,它是fsockopen、fread、fwrite的适配器 Class ClientSocket extends SenderAdapterAbstract { private $s = null; public function __construct($host, $port) { $this->s = fsoc

我的问题很简单,适配器(设计模式)类是否应该进行单元测试,以及如何进行单元测试

例如:

我想用PHP创建一个类ClientSocket,它是fsockopen、fread、fwrite的适配器

Class ClientSocket extends SenderAdapterAbstract
{
    private $s = null;

    public function __construct($host, $port)
    {
        $this->s = fsockopen($host, $port);
    }

    // Abstract method concrete implementation
    public function send($message)
    {
        fwrite($this->s, $message);

        $result = fgets($this->s);
        fclose($this->s);
    }
}
我应该考这门课吗?如果单元测试与网络对话,它就不是真正的单元测试

我应该考这门课吗?如果一个单元测试与其他测试对话,那么它就不是真正的单元测试 网络

没错。这就是为什么不能对适配器进行单元测试,但如果需要,可以为其创建集成测试。这些集成测试应该仍然是3d party library正确运行的基本检查。如果它们太慢,您可能需要将它们从主测试套件移动到运行频率较低的单独测试套件


我认为这是一个更好的提问地方,我会在codereview上创建一个问题,以防出现问题。谢谢