如何模拟Schema::getColumnListing(';t#u schedule';);在拉拉维尔的phpunit
我想在PHPUnit中测试我的CSV导入方法。 我的PHPUnit测试控制器,我想测试导入的CSV文件和插入数据库的数据。 在TestDataCSV.php中,我创建了所需的CSV文件和数组如何模拟Schema::getColumnListing(';t#u schedule';);在拉拉维尔的phpunit,php,phpunit,mockery,Php,Phpunit,Mockery,我想在PHPUnit中测试我的CSV导入方法。 我的PHPUnit测试控制器,我想测试导入的CSV文件和插入数据库的数据。 在TestDataCSV.php中,我创建了所需的CSV文件和数组 <?php namespace Tests\Unit; use Tests\TestCase; use \Mockery; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; include &quo
<?php
namespace Tests\Unit;
use Tests\TestCase;
use \Mockery;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
include "TestDataCSV.php";
class scheduleCSVImportTest extends TestCase
{
//use RefreshDatabase, WithFaker;
/**
* Allocation unit test
*
* @dataProvider csvImportDataProvider
*/
public function testconvert($scheduleCSVData, $scheduleTEXTData,$getColumnListingData,$expectedResultArr)
{
$mockMasterData = Mockery::mock('App\Http\Controllers\CsvController')->makePartial();
Schema::shouldReceive('getColumnListing')
->with('t_schedule')
->andReturn($getColumnListingData);
$actualResult = $mockMasterData->convert($scheduleCSVData,$scheduleTEXTData,'schedule');
$this->assertEquals($expectedResultArr, $actualResult);
}
public function csvImportDataProvider()
{
return data();
}
}
您可以尝试使用以下方法模拟静态方法:
别名模拟使用stdClass的给定类名创建类别名
和通常用于启用对公共静态方法的模拟。
. 在引用静态对象的新模拟对象上设置的期望
方法将由对此类的所有静态调用使用
$mock = \Mockery::mock('alias:MyClass');
您可以尝试使用以下方法模拟静态方法:
别名模拟使用stdClass的给定类名创建类别名
和通常用于启用对公共静态方法的模拟。
. 在引用静态对象的新模拟对象上设置的期望
方法将由对此类的所有静态调用使用
$mock = \Mockery::mock('alias:MyClass');