はじめに
最近プログラムを書くときはテストコードから書くようにしているのですが、
ちょいちょい忘れるApexテストコードの癖があるので記事にしました。
インサート後に再セレクトが必要な項目
以下の項目はインサート後に再セレクトしてあげないと、
値が入らず「あれ、なんでnullなんだろう..」ってなります。
- 数式
- 積み上げ集計項目
(2022/04/10 追記)
recalculateFormulas()
を使うと、オブジェクトごとセレクトしなくても、数式項目が更新されます。
※積み上げ集計は更新されません
ただ、積み上げ集計を数式項目化すれば更新できたり、
FormulaクラスとSObjectクラスで挙動が違ったりするので、使う前に癖を掴んでおくと後々便利かと思います。
recalculateFormulas()
の解説はこちらの記事が分かりやすかったです。
ユニーク項目の重複
カスタムで作ったユニーク項目は、自分でユニークにしてあげる必要があります。
乱数を入れてあげるのが楽なのですが、
もっとスマートな方法があったら教えていただきたいです🙇♂️
乱数を返す関数サンプル
public static String createRandomNumStr(){
String result = '';
Decimal randomNum = Decimal.valueOf(Math.random()) * 10000;
Decimal randomNumRounded = randomNum.round(System.RoundingMode.HALF_EVEN);
result = String.valueOf(randomNumRounded);
return result;
}