gpt4 book ai didi

php - 在 PHPUnit 测试中找不到 Slim/Http/Environment

转载 作者:行者123 更新时间:2023-12-05 07:38:21 26 4
gpt4 key购买 nike

我正在使用 Slim/Composer 开发一个 API,我目前正在尝试使用 PHPUnit 实现一些单元测试。当我通过命令行运行测试时,我一直遇到错误:

Fatal error: Class 'Slim\Http\Environment' not found
in C:\workspace\client\website\client\api\client-api\src\testclasses\dao\GenreDaoTest.php
on line 15

我的 composer.json 看起来像这样:

{
"require": {
"slim/slim": "^3.1",
"slim/php-view": "^2.0",
"monolog/monolog": "^1.17",
"robmorgan/phinx": "^0.5.1",
"firebase/php-jwt": "^5.0",
"vlucas/phpdotenv": "^2.4",
"tuupola/slim-jwt-auth": "^2.3"
},
"autoload": {
"psr-4": {
"": ["classes/dao",
"classes/controller",
"classes/app",
"testclasses/dao"]
}
},
"require-dev": {
"phpunit/phpunit": "^5.7"
}
}

我的测试类是这样的:

<?php

use \Slim\Http\Environment as Environment;
use \Slim\Http\Request as Request;
use \Slim\Http\Response as Response;

class GenreDaoTest extends \PHPUnit_Framework_TestCase {

public function testTemp() {
$this->assertEquals(0, 0);
}

public function testGenres() {

$environment = Environment::mock([
'REQUEST_METHOD' => 'GET',
'REQUEST_URI' => '/api/v1/genres'
]);

$request = \Slim\Http\Request::createFromEnvironment($environment);
$response = new Response();

$this->assertEquals('test', 'test');
}
}
?>

如果我注释掉整个第二个测试,留下 use 语句,第一个测试将毫无问题地通过。我想这可能与测试文件的位置有关,所以我将它移到了 classes/app 目录,我有其他具有类似导入的类,我看到了相同的结果,所以我不 < em>认为 文件所在的位置存在问题。

我唯一能想到的两件事是,当我通过命令行($phpunit src/testclasses/dao/GenreDaoTest.php)运行测试时发生了一些事情,或者我的 Composer 设置有问题。

我通常是一名 Java 工程师,所以我可能也遗漏了 PHP 领域中的一些简单的东西:)

有人有什么建议吗?非常感谢!

(另外,我知道我可能不应该在 DAO 测试中测试 API 请求/响应,我正在重构过程中)

最佳答案

使用 phpunit 时,您可以告诉它在运行测试之前包含 vendor/autoload.php。为此,您可以更改 phpunit.xml 以包含以下内容:

<phpunit bootstrap="./vendor/autoload.php">
...
</phpunit>

或者您可以在从命令行调用时将 --bootstrap vendor/autoload.php 传递给 phpunit 命令:

phpunit --boostrap vendor/autoload.php <tests directory>

阅读更多 PHPUnit documentations测试执行部分下。
我还建议阅读 this question及其答案。

关于php - 在 PHPUnit 测试中找不到 Slim/Http/Environment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47966397/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com