下記の処理で、$no = 11111を渡した際に$value(ここでは1)が返ってくることのテストをphpunitで書きたいのですが、
モック化した値が返って来ません。nullが返却されます。
ここでどのように修正すれば良いか検討がつきません。
どうかご教示お願いします。
php
1protected function getNumber($no) 2 { 3 $numbers = 4 DB::connection('db_name')->table('table_1') 5 ->leftJoin('tables_2', 'table_1.id', '=', 'tables_2.id') 6 ->where('table_1.id', '=', $no) 7 ->get(['table_1.colum_1', 'table_2.colum_2', 'table_1.colum_3']) 8 ->toArray(); 9 10 foreach($numbers as $value){ 11 return $value; 12 } 13 }
phpunit
1 public function test_getNumber() 2 { 3 $mock = Mockery::mock('overload:App\{パス}'); 4 $mock->shouldReceive('getNumber'); 5 $mock->shouldReceive('connection->table->leftJoin->where->get->toArray')->andReturn(1); 6 $no = '11111'; 7 $actual = $mock->getNumber($g_no); 8 $expected = 1; 9 $this->assertEquals($expected, $actual); 10 }
回答が得られないので、追記させていただきます。
1番分からないのはDBファサードの部分をどのようにモック化したら良いかわかりません。
足りない項目があれば、追記致します。
どんな些細な回答でも構いません。
どうか、どうか宜しくおねがいします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。