【问题标题】:Codeception unit tests - error Class 'Dog' not foundCodeception 单元测试 - 未找到错误类“狗”
【发布时间】:2018-12-27 12:44:15
【问题描述】:

我正在使用 Codeception 来 TDD 开发一个简单的 PHP 应用程序。我用一个简单的断言创建了我的第一个名为 DogTest.php 的单元测试,但它抱怨找不到 Dog 类。

我在根目录下创建了一个 Dog.php 文件,并将它放在 /src 下,但都不起作用。我认为这要么是命名空间问题,要么是自动加载器问题,但 Codeception 文档(以及我看过的各种 TDD 指南)缺少这个重要的细节。

有人可以建议如何让我的 DogTest 检测 Dog 类吗?

【问题讨论】:

  • 使用作曲家,是吗?
  • 是的,我正在使用作曲家
  • 我已经为你添加了答案。

标签: php phpunit tdd codeception


【解决方案1】:

在您的 composer.json 中,确保您已添加自动加载配置。举个例子:

"autoload":{
        "psr-4":{
            "Del\\":"src/"
        }
}

src 中的每个文件都应该有命名空间Del。例如,src/Blank.php 看起来像:

<?php

namespace Del;

class Blank
{

}

而src/Http/Client.php 将具有命名空间Del\Http。

添加后,运行composer dumpautoload 以生成类映射。您的类现在应该可以毫无问题地自动加载了。

有关更多信息,请参阅我的带有代码接收测试的空白入门项目。

https://github.com/delboy1978uk/blank

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 2013-11-09
    • 2017-09-16
    • 1970-01-01
    • 2016-03-16
    • 2020-01-18
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多