如何(真的)单元测试适配器

时间:2014-01-09 13:42:56

标签: 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 = fsockopen($host, $port);
    }

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

        $result = fgets($this->s);
        fclose($this->s);
    }
}

我应该测试这门课吗?如果单元测试与网络对话,那么单元测试就不是真的...

1 个答案:

答案 0 :(得分:2)

  

我应该测试这门课吗?如果谈话,单位测试不是真的   网络...

完全。这就是您无法对适配器进行单元测试的原因,但如果需要,可以为其创建集成测试。这些集成测试应该仍然是3d方库正常运行的基本检查。如果它们太慢,您可能需要将它们从主测试套件移动到运行频率较低的单独测试套件中。

参见http://blog.8thlight.com/eric-smith/2011/10/27/thats-not-yours.html http://davesquared.net/2011/04/dont-mock-types-you-dont-own.html