PHPunit рефакторинг чтения файла в EOF тест для работы

Я новичок в TDD и PHPUnit, поэтому, пожалуйста, прости меня, если моя логика тестовой функции не имеет смысла.

У меня есть тестовая функция с именем test_read_to_end_of_file_is_reached, которая получает зеленый цвет, как написано в моем классе inputTest, подтверждая, что она читает в конец файла.

Я пытаюсь преобразовать часть чтения / открытия в функцию в моей модели Vendors под названием readFile

Первоначально, InputTest учебный класс

<?php

class InputTest extends \PHPUnit\Framework\TestCase{

protected $vendors;

public function setUp(){
$this->vendors = new \App\Models\Vendors;
}

/** @test */
public function test_that_input_file_exists(){
$this->assertFileExists($this->vendors->getFileName());
}

/** @test */
public function test_read_to_end_of_file_is_reached(){
$fileName = $this->vendors->getFileName();
$file = fopen($fileName, "r");
// loop until end of file
while(!feof($file)){
// read one character at a time
$temp = fread($file, 1);
}

$this->assertTrue(feof($file));
//close file
fclose($file);
}

Моя попытка разделить его на функцию

Вендоры учебный класс:

<?php

namespace App\Models;
class Vendors
{
protected $fileName = "app/DataStructures/input.txt";

public function setFileName($fileName){
$this->fileName = trim($fileName);
}

public function getFileName(){
return trim($this->fileName);
}

public function readFile(){
$fileName = $this->getFileName();
$file = fopen($fileName, "r");

// loop until end of file
while(!feof($file)){
// read one character at a time
$temp = fread($file, filesize($fileName));
var_dump($temp);
}
return $file;
fclose($file);
}
}

мой рефакторированный тест:

    /** @test */
public function test_read_to_end_of_file_is_reached(){
$fileName = $this->vendors->getFileName();
$file = fopen($fileName, "r");
$this->assertTrue(feof($this->vendors->readFile()));
//close file
fclose($file);
}

Это все работает, я просто не уверен, смогу ли я упростить тест еще.
что в конечном итоге позволит мне строить после чтения текстового файла и разбора построчно на основе того, что читается для воспроизведения содержимого на консоли.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]