第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 findOrFail 時獲取“嘗試獲取非對象的屬性'小計'”

使用 findOrFail 時獲取“嘗試獲取非對象的屬性'小計'”

PHP
波斯汪 2022-08-19 11:00:58
我在服務(wù)中有以下代碼:public function add(array $data) : Order    {        // retrieve item data        $item       = MenuItem::findOrFail($data[OrderItem::ORDER_ITEM_ITEM_ID]);        $quantity   = $data[OrderItem::ORDER_ITEM_QUANTITY];        $order_no   = $data[Order::ORDER_NO] ?? null;        $session_id = $data[Order::ORDER_SESSION_ID];        $order = $order_no ? Order::findOrFail($order_no) : $this->createOrder([Order::ORDER_SESSION_ID => $session_id]);        $order_item = $this->order_item->createOrderItem($order->order_no, $item, $quantity);        // update order total        $order->subtotal += $order_item->subtotal;        $order->total    += $order_item->subtotal;        $order->update();        return $order;    }運行測試時,我得到:獲取“嘗試獲取非對象的屬性'小計'”檢索到的對象不為空,否則它將失敗。但是,小計和總計都不屬于對象。如果我打印對象,我會得到除這兩個字段之外的其他字段。它們都在我的數(shù)組中,我在遷移中定義了一個。$fillable->default(0);這是怎么回事?
查看完整描述

1 回答

?
有只小跳蛙

TA貢獻1824條經(jīng)驗 獲得超8個贊

根據(jù)我們在評論中的對話,您在函數(shù)中遇到的問題之一,并因此導(dǎo)致測試中的問題,是一個依賴項,其中每次都無法保證結(jié)果。也就是說,對函數(shù)中另一個服務(wù)的調(diào)用不保證提供特定的輸出。add

把你的測試想象成這樣。

  • 我從零個項目和零小計的訂單開始

  • 我想向該訂單添加商品

  • 我想以一個包含一個項目的訂單和一個十美元的小計結(jié)束

在此測試中,您不關(guān)心訂單項的創(chuàng)建方式,您只關(guān)心它是否具有特定值,以便將其添加到訂單中時,最終結(jié)果是您期望的。

在這種情況下,您希望成為一個模擬對象,然后您可以模擬調(diào)用以返回已知訂單對象。向您展示一個完整的解決方案有點困難,因為它可能涉及一些架構(gòu)更改,但您的測試將如下所示:$this->order_itemcreateOrderItem

public function it_adds_an_item_to_an_order()

{

  $orderItem = Mock(OrderItem::class); // Use whatever mocking lib is available

  $orderitem->shouldReceive('createOrderItem').andReturn(new OrderItem([$subtotal=>10.00]));

  $orderService = new OrderService($orderItem);


  $order = $orderService->add($data);


  $this->assertNotNull($order);

  $this->assertEquals(10.00, $order->subtotal);

}


查看完整回答
反對 回復(fù) 2022-08-19
  • 1 回答
  • 0 關(guān)注
  • 97 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號