我一直在尝试建立一个单元测试,该单元测试调用一种调用数据库的方法。我查了嘲笑和伪造者,对做什么感到困惑。
在测试中我打电话给
Logic::lookForClassificationException($exception_array, $content);
在我的方法中,有一个对我的ClassificationException模型的调用
$exceptions = ClassificationException::select('exception')->get();
我对如何为此设置模拟感到困惑。分类异常是具有ID,异常,previous_word和after_word的表。
如何模拟或伪造设置?
答案 0 :(得分:0)
使用DB进行测试的一种方法是为以下测试设置内存中的sqlite数据库:
use Illuminate\Database\Capsule\Manager as DB;
protected function setUpDatabase()
{
$database = new DB;
$database->addConnection(['driver' => 'sqlite', 'database' => ':memory:']);
$database->bootEloquent();
$database->setAsGlobal();
}
然后,在测试类的setUp
方法中调用此函数。
这只是许多可能的方法之一,可能不适合您的需求。另一种方法是为测试和use a separate .env for tests
设置一个单独的数据库根据我的经验,当您尝试模仿雄辩的模型时,测试会失败