0

我正在尝试在一个项目上学习 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++;
    }
}
4

0 回答 0