私はユニットテストを学ぼうとしていますが、次のような状況に陥っています。
- 私はモデルを持っています: SalesOrder - eコマースストアでの注文をモデル化します
- SalesOrder には、gift_message_id というプロパティがあります。
- ギフト メッセージ ID は整数値で、GiftMessage モデルへの外部キーです
- GiftMessage モデルには、注文モデルを取り、SalesOrder に基づいて GiftMessage インスタンスを正しくロードできるメソッドがあります。
この動作を正確にテストするテストを作成しようとしていますが、最終的に 2 つのモック (SalesOrder 用に 1 つ、GiftMessage 用に 1 つ) になり、意味がありません。ここで何が間違っていますか?
私がテストしようとしている方法は次のようになります。
public function loadGiftMessageByOrderModel(SalesOrder $order)
{
$giftMessageId = $order->getGiftMessageId();
//if the order has a gift message id then load the gift message model and return it
if ($giftMessageId !== false) {
return new GiftMessage($giftMessageId);
}
return false;
}
注文とギフトメッセージのデータがデータベースに保存されていることを念頭に置いて、これを単体テストするにはどうすればよいでしょうか。