SOSLをテストクラスで実行すると検索結果が0件になる
最近仕事で引っかかったSalesforceの話を備忘として残します。
SOSLをテストクラスで実行すると検索結果が0件になります。
詳細は上記の「Apex 開発者ガイド」の「SOSL クエリの単体テストへの追加」を参照ください。
簡潔に言うと、
・SOSLをテストメソッドで実行すると検索結果が必ず0件になる(仕様)
・検索結果を0件にしたくない場合、Test.setFixedSearchResults システムメソッドを使って検索結果のレコードIdリストを設定する必要がある
「SOQLと同じだろう」という認識でテストクラスを作成・実行すると、
想定と結果が違って焦ることになるため、注意が必要です。