我正在尝试学习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都会打印以下输出:
Sebastian Bergmann的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++;
}
}