首页 文章

如何使用模型函数测试自定义类(PSR-4自动加载),使用Laravel 5.2中的PHPUnit

提问于
浏览
1

我正在编写一个自定义类来处理我的项目中的一些独特操作,这是在Laravel 5.2中开发的 . 在那里,我已经调用了一些现有的模型函数来从数据库中获取一些值 . 如果我们运行代码,它将正常工作 . 但是当我编写不同的测试用例并单独测试这些类时,由于未 Build 连接,因此发生了数据库连接错误 .

PHP致命错误:在第3314行的/var/www/html///ndndor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php中调用null上的成员函数connection()

我可以编写一个单独的测试代码来创建和删除数据库中的资源 . 但这不是我正在寻找的东西 . 我想使用模型类中编写的自定义函数,如下所示 .

<?php
namespace ****\Paymentmethod;

use App\Models\Customer;
/**
* ****** Package - Additional helpers
* @package *******
* @author ********
* 
* Card is intended to handle the operations related to credit cards
*
*/
class Card
{
    private $var;

    public function __construct()
    {
        //constructor
    }

    public static function getCard($user_id)
    {
        return Customer::getCustomerInfo($user_id);
    }
}

这个 Card 类用在另一个类中,这就是我正在测试的 . Customer 是一个模型类, getCustomerInfo 是一个自定义方法 .

1 回答

  • 1

    你的app实例可能没有实例化 .

    看一下Laravel在 tests/ 文件夹中提供的 TestCase.php ,它会创建一个应用程序的实例 . 除非您的测试完全不依赖于框架,否则您需要确保测试 extends TestCase 类,以便它也将实例化应用程序实例 .

    当您在测试之外运行时它工作的原因是当您通过路由或控制台命令进入应用程序时,应用程序将为您自行引导 .

相关问题