tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:Winter'23で追加されたApexテストのSystem.Assert クラスを試してみました

Winter'23で追加されたApexテストのSystem.Assert クラスを試してみました。追加されてから一年くらい経っている仕組みで、情報確認してからどこかで切り替えようかなと思いつつすっかり忘れてたので改めて確認してみました。


テストクラスでは今まで「System.assert()」「System.assertEquals()」「System.assertNotEquals()」という書き方で変数の値チェックができました。


Winter'23で追加されたAssetクラスでは「Assert.areEqual」「Assert.isNull」「Assert.fail」といった書き方が使えるようになります。


ヘルプサイトによると以下の記載がありました。

既存の System クラスのアサートメソッドは引き続きサポートされます。ただし、すぐに新しいメソッドの使用を開始し、既存のコードを更新してそれらを使用することをお勧めします。

新しい System.Assert クラスでは、すべての種別の論理アサーションと比較を処理するメソッドが提供されます。特定の条件を対象としたアサートメソッドを使用すると、Apex コードの明確さが向上します。また、アサーションの結果が例外である場合は、読みやすく理解しやすくなります。

明確かつ計画的な Apex アサーションの記述


詳細についてはApexの開発者ガイドにまとめられています。

Apex Reference Guide - Assert Class


「System.assert」を新しい書き方の一つ「Assert.isTrue」に変更した例。


実行結果がfalseとなる場合は「Assert.isFalse」といった書き方もできます。


他にも多くのチェック方法が用意されているようでした。


置き換えのイメージはこんな感じとなります。


Apexテストの新しい System.Assert クラスの使い方についてはこんな感じでした。