Shopware 6:如何将 shopware 单元测试输出从 fixture 路由到原始文件夹?
Shopware 6 : how to route shopware unit test output from fixture to original folder?
我正在为从 public 目录下的下载文件夹中获取文件的功能构建单元测试。但在单元测试中,我使用夹具作为测试文件路径。我如何在我的常用函数 beetween fixture 和原始 pub 目录中模拟目录?
看看这个核心测试:\Shopware\CI\Test\Service\ReleasePrepareServiceTest::setUp
他们使用以下代码模拟文件夹内容:
public function setUp(): void
{
$this->artifactsFilesystem = new Filesystem(new MemoryAdapter());
[...]
$this->artifactsFilesystem->put('install.zip', random_bytes(1024 * 1024 * 2 + 11));
$this->artifactsFilesystem->put('install.tar.xz', random_bytes(1024 + 11));
$this->artifactsFilesystem->put('update.zip', random_bytes(1024 * 1024 + 13));
}
单元测试在这里创建一些内存文件系统,并用一些随机数据的文件填充它。
我通过检查 Shopware 测试文件夹中 Filesystem
class 的用法发现了这一点。
可以将此文件系统注入到您正在测试的服务或代码中。
例如:
public function setUp(): void
{
$this->myMockFileSystem = new Filesystem(new MemoryAdapter());
$this->myMockFileSystem->put('file_we_need_in_the_test.pdf', random_bytes(1024 * 1024 * 2 + 11));
}
public function testSomething(): void
{
$service = new MyService($this->myMockFilesystem);
$this->assertEquals('some result', $service->doSomething());
}
我正在为从 public 目录下的下载文件夹中获取文件的功能构建单元测试。但在单元测试中,我使用夹具作为测试文件路径。我如何在我的常用函数 beetween fixture 和原始 pub 目录中模拟目录?
看看这个核心测试:\Shopware\CI\Test\Service\ReleasePrepareServiceTest::setUp
他们使用以下代码模拟文件夹内容:
public function setUp(): void
{
$this->artifactsFilesystem = new Filesystem(new MemoryAdapter());
[...]
$this->artifactsFilesystem->put('install.zip', random_bytes(1024 * 1024 * 2 + 11));
$this->artifactsFilesystem->put('install.tar.xz', random_bytes(1024 + 11));
$this->artifactsFilesystem->put('update.zip', random_bytes(1024 * 1024 + 13));
}
单元测试在这里创建一些内存文件系统,并用一些随机数据的文件填充它。
我通过检查 Shopware 测试文件夹中 Filesystem
class 的用法发现了这一点。
可以将此文件系统注入到您正在测试的服务或代码中。
例如:
public function setUp(): void
{
$this->myMockFileSystem = new Filesystem(new MemoryAdapter());
$this->myMockFileSystem->put('file_we_need_in_the_test.pdf', random_bytes(1024 * 1024 * 2 + 11));
}
public function testSomething(): void
{
$service = new MyService($this->myMockFilesystem);
$this->assertEquals('some result', $service->doSomething());
}