如何在PHPUnit中测试STDIN

时间:2013-04-11 19:46:04

标签: php testing tdd phpunit bdd

我有读取器类,它从stdin读取并返回readed值。

class Reader 
{
    const STREAM_READ = 'php://stdin';

    private $_streamHandle;

    public function __construct($stream = self::STREAM_READ)
    {
        $this->_streamHandle = fopen($stream, 'r');
    }

    public function getReadedValue()
    {
        $value = trim(fgets($this->_streamHandle));

        return $value;
    }

    public function __destruct()
    {
        fclose($this->_streamHandle);
    }
}

现在我的问题是,我如何测试这个类,从stdin读取一些内容并通过getReadedValue()函数返回readed值?

1 个答案:

答案 0 :(得分:1)

您测试 Reader ,而不是STDIN是否正常工作。

因为您测试了该单元( Reader ),所以该文件名是什么并不重要,因为它只是可选的。您可以注入不同的内容,例如临时文件的文件名。

相关问题