我正在编写一个自定义类来处理我的项目中的一些独特操作,这是在Laravel 5.2中开发的。在那里,我已经调用了一些现有的模型函数来从数据库中获取一些值。如果我们运行代码,它将正常工作。但是当我编写不同的测试用例并单独测试这些类时,由于未建立连接,因此发生了数据库连接错误。
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
是一个自定义方法。
答案 0 :(得分:1)
你的应用实例可能没有实例化。
查看Laravel在TestCase.php
文件夹中提供的tests/
,它会创建应用的实例。除非你的测试是完全不依赖于框架的纯“单元”测试,否则你需要确保你的测试extends
TestCase
类,以便它也可以实例化一个应用程序实例。 / p>
当您在测试之外运行时,它运行的原因是当您通过路由或控制台命令进入应用程序时,应用程序将为您自行启动。