Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何模拟Schema::getColumnListing(';t#u schedule';);在拉拉维尔的phpunit_Php_Phpunit_Mockery - Fatal编程技术网

如何模拟Schema::getColumnListing(';t#u schedule';);在拉拉维尔的phpunit

如何模拟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

我想在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 "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');