【发布时间】:2021-08-20 05:22:06
【问题描述】:
我正在尝试对文件 '\app\Custom\custom.php` 中的自定义函数运行单元测试
我正在尝试在我的测试文件中包含自定义文件:
include(app_path().'/Custom/custom.php');
但我得到了错误:
PHP Fatal error: Uncaught Error: Call to undefined method Illuminate\Container\Container::path()
根据@habeebdev的回答,我试过了:
文件路径添加到composer.json
...
"autoload": {
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Database\\Seeders\\": "database/seeders/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
},
"files": ["app/Custom/custom.php"]
},
...
laravel/tests/Unit/PracticeTest.php
<?php
namespace Tests\Unit;
use Tests\TestCase;
use App\Models\User;
use Illuminate\Support\Facades\DB;
class PracticeTest extends TestCase
{
/**
* A basic unit test example.
*
* @return void
*/
public function test_trueExample()
{
$user = User::find(1);
$this->actingAs($user)
->assertEquals(true, can_transact());
}
}
错误:
Call to undefined function Tests\Unit\can_transact()
编辑:
我的custom.php 文件中有一个namespace App\Http\Controllers。一旦我为函数添加前缀App\Http\Controllers\can_transact(),它就可以正常工作(感谢@apokryfos)
【问题讨论】: