2013-04-11 35 views
8

Tôi có lớp đọc đọc từ stdin và trả về giá trị đã đọc.Cách kiểm tra STDIN trong PHPUnit

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); 
    } 
} 

Bây giờ là câu hỏi của tôi, làm cách nào tôi có thể kiểm tra lớp này, đọc điều gì đó từ stdin và trả về giá trị đã đọc theo hàm getReadedValue()?

+0

thực thi tập lệnh thứ nhất với dòng lệnh –

+0

Có phần mở rộng mô phỏng hệ thống tệp cho PHPUnit được gọi là vfsStream, mà tôi nghĩ có thể giúp nhưng tài liệu không nói gì, vì vậy có lẽ không. Có lẽ giá trị một đào mặc dù? Đó là trên GitHub. Ngoài ra, đây là một QA có liên quan có thể đáng đọc: http://stackoverflow.com/questions/9158155/how-to-write-unit-tests-for-interactive-console-app –

Trả lời

1

Bạn kiểm tra Reader, không phải nếu STDIN đang hoạt động hay không.

Vì bạn kiểm tra thiết bị (Reader), điều đó không quan trọng đối với tên tệp đó vì nó chỉ là tùy chọn. Bạn có thể tiêm một cái gì đó khác nhau, ví dụ như tên tập tin của một tập tin tạm thời.

+0

Điểm tốt, bất kỳ ý tưởng nào để kiểm tra STDIN là luồng mặc định? – nickel715

Các vấn đề liên quan