问题描述
我正在阅读 PHPUnit 的文档。我被困在示例 2.7 和示例 2.8 上。它显示了两个错误。
- PHP 警告:fopen(data.csv):无法打开流:没有那个文件或目录
- 为 DataTest::testAdd 指定的数据提供程序无效。类型错误:fclose() 期望参数 1 是资源,给定布尔值
<?PHP declare(strict_types=1);
use PHPUnit\Framework\TestCase;
final class CsvFileIterator implements Iterator
{
private $file;
private $key = 0;
private $current;
public function __construct(string $file)
{
$this->file = fopen($file,'r');
}
public function __destruct()
{
fclose($this->file);
}
public function rewind(): void
{
rewind($this->file);
$this->current = fgetcsv($this->file);
$this->key = 0;
}
public function valid(): bool
{
return !feof($this->file);
}
public function key(): int
{
return $this->key;
}
public function current(): array
{
return $this->current;
}
public function next(): void
{
$this->current = fgetcsv($this->file);
$this->key++;
}
}
下面是DataTest类的代码
<?PHP declare(strict_types=1);
use PHPUnit\Framework\TestCase;
require "CsvFileIterator.PHP";
final class DataTest extends TestCase
{
/**
* @dataProvider additionProvider
*/
public function testAdd(int $a,int $b,int $expected): void
{
$this->assertSame($expected,$a + $b);
}
public function additionProvider(): CsvFileIterator
{
return new CsvFileIterator('data.csv');
}
}
以下示例数据.csv
0,0
0,0
请帮我弄清楚我做错了什么。提前致谢。
注意:我的本地是 windows 10。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)