php - 如何在 PHPUnit 中测试 STDIN

标签 php testing tdd phpunit bdd

我有读取器类,它从标准输入读取并返回读取值。

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() 函数返回读取的值?

最佳答案

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

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

关于php - 如何在 PHPUnit 中测试 STDIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15957533/

相关文章:

php - 使用 PHP 在 MySQL 中插入注册数据

java - jubula 和访问后端数据库

ruby - 使用 Minitest 对 protected 或私有(private)方法进行 stub

php - 通过PHP以表单形式上传文件

php - 在XDK中使用ajax和php删除sql中的数据

php - 交响乐 3 : Debugging with Symfony's development server

php - Doctrine Cascade Delete OneToMany 自引用

unit-testing - 网站测试员的文件?

c - 以下哪个函数在 C 中更容易测试?

ruby - Rspec:EmeraldComponent:Module 的未定义方法 `StandardError'