service = app('StationTaskCommodityService'); $this->data['batches'] = factory(Batch::class, $this->batchAmount) ->create([ 'status'=>'未处理', ]); $this->data['orders'] = factory(Order::class, $this->orderAmount) ->create([ 'status'=>'未处理', 'batch_id'=>$this->getTargetIdCirculately($this->data['batches']), ]); $this->data['orderBins'] = factory(OrderBin::class, $this->orderAmount) ->create([ 'order_id'=>$this->getTargetIdCirculately($this->data['orders']), 'number'=>$this->getIntegerIncreasely('orderBins_number'), ]); $this->data['orderCommodities'] = factory(OrderCommodity::class, $this->orderCommodityAmount) ->create([ 'order_id'=>(function(){ if(!isset($this->data['temOrderId_orderCommodities'])){ $this->data['temOrderId_orderCommodities']=$this->orderAmount; } $this->data['temOrderId_orderCommodities']++; if($this->data['temOrderId_orderCommodities']>=$this->orderAmount)$this->data['temOrderId_orderCommodities']=0; return $this->data['orders'][$this->data['temOrderId_orderCommodities']]; })(), ]); } public function testReturned() { $this->service=$this->subMock([ 'class'=>StationTaskCommodityService::class, 'subServices'=>[ [ 'serviceName'=>'materialBoxService', 'class'=>MaterialBoxService::class, 'methods'=>[ 'firstOrCreate'=>new MaterialBox(['id'=>1]), ], ], ] ]); $this->data['stationTaskCommodities'] =(function(){ if(!isset($this->data['stationTaskCommodities'])) $this->data['stationTaskCommodities'] = collect(); foreach($this->data['batches'] as $batch){ $this->data['stationTaskCommodities'] =$this->data['stationTaskCommodities']->merge( $this->service->createByBatch($batch) ); } return $this->data['stationTaskCommodities']; })(); $this->assertEquals($this->orderCommodityAmount, $this->data['stationTaskCommodities']->count()); } function tearDown(): void { StationTaskCommodity::query() ->whereIn('id',data_get($this->data['stationTaskCommodities'],'*.id')??[]) ->delete(); Batch::query() ->whereIn('id',data_get($this->data['batches'],'*.id')??[]) ->delete(); Order::query() ->whereIn('id',data_get($this->data['orders'],'*.id')??[]) ->delete(); OrderBin::query() ->whereIn('id',data_get($this->data['orderBins'],'*.id')??[]) ->delete(); OrderCommodity::query() ->whereIn('id',data_get($this->data['orderCommodities'],'*.id')??[]) ->delete(); parent::tearDown(); } }