我正在尝试在一个项目上学习 phpunit,这个项目需要复制一些文件,所以我想我会使用 vfsStream 来模拟文件系统以进行单元测试。
事实证明,每当我包含和使用 vfsStreamWrapper 类时,phpunit 似乎并不关心调用不存在的函数或任何其他输出。
下面的函数是我从一个例子中复制过来的,我将第二个被调用的函数更改为我确定不存在的函数:
protected function setUp()
{
vfsStreamWrapper::register();
vfsStreamWrapper::yowkes(array('Core' => array('AbstractFactory' => array('test.php' => 'some text content',
'other.php' => 'Some more text content',
'Invalid.csv' => 'Something else',
),
'AnEmptyFolder' => array(),
'badlocation.php' => 'some bad content',
)
));
}
phpunit 所做的只是打印以下输出:
塞巴斯蒂安伯格曼的 PHPUnit 3.7.21。
我在一个杂乱无章的盒子上通过 ssh 从终端运行 phpunit。
任何帮助表示赞赏。
编辑:
public function testFilesAreCopiedCorrectly() {
$remoteDirectory = 'files/remoteFiles/';
$correctFilePaths = array('20130627-1830-01.xml',
'20130627-1830-02.xml',
'20130627-1830-03.xml',
'20130627-1830-04.xml',
'20130627-1830-05.xml',
'20130627-1830-06.xml',
'20130627-1830-07.xml',
'20130627-1830-08.xml',
'20130627-1830-09.xml',
);
$remoteImportFileGetter = new RemoteImportFileGetter($remoteDirectory,
$correctFilePaths,
vfsStream::url('localDir'));
$remoteImportFileGetter->copyFilesToLocalDirectory();
$localFiles = $this->root->getChildren();
$this->assertCount(9, $localFiles);
$this->assertEquals($correctFilePaths, $localFiles);
$i = 0;
foreach($correctFilePaths as $remoteFile){
$this->assertEquals(file_get_contents($remoteFile), file_get_contents($localFiles[$i]));
$i++;
}
}