apexクラス、テストクラス、およびapexクラスを呼び出すプロセスビルダを持つパッケージをデプロイします。私がクラスを開発したサンドボックスでは、コードカバレッジは100%です。別のサンドボックス/プロダクションに展開しようとしたとき、コードカバレッジが65%になったため、失敗しました。Salesforceにプロセスビルダーでapexクラスをデプロイできません
プロセスビルダが展開され、コード全体が結果としてカバーされていないため、プロセスビルダが非アクティブであるためです。私はこれをどのように進めるべきですか?私はすでに次の操作を実行しようとしてい
:
- は、クラスを展開する前にそれをアクティブにするために最初のプロセスビルダを展開します。プロセスビルダの展開に失敗しました。
- プロセスビルダーなしでクラスをデプロイします。コードカバレッジは65%でした。
- さらに多くのケースに対応できるようにテストクラスを変更します。プロセスビルダーで動作するようにコードを変更したため、これをテストする方法が見つからないため、これは不可能でした。
- プロセスビルダーがアクティブ化され、非アクティブ化されたときにテストコードを実行しました。プロセスクラスは、テストクラスにレコードが挿入されたときに呼び出されるため、非アクティブ化時には65%のカバレッジ、アクティブ化された場合は100%のカバレッジを示しました。
私のコードは、顧客の電子メールを受け取り、CryptoUtil.generateHashDigestメソッドを使用してハッシュに変換して、ハッシュされた電子メールのフィールドに保存します。
Public static void newRecord(List<Account> listAccounts) {
for(Account a : listAccounts) {
Account updacc=[select id from account where id = :a.id];
String message = String.valueof(a.get('Customer_Email__pc'));
String hashDigest = CryptoUtil.generateHashDigest(message);
updacc.Hashed_email__pc = HashDigest;
update updacc;
}
}
プロセスビルダーを使用するために挿入/更新されたアカウントレコードのクローンを作成する必要がありました。この方法を使用すると、変更はクローンでのみ行われます。プロセスビルダを使用しない場合、テストクラスはHashed_email__pcフィールドの実際のハッシュ値ではなくNull値を取得し、テストに失敗します。プロセスビルダを使用すると、クローンで行われた変更が実際のレコードに反映され、テストに合格します。私がこのコードセクションを呼び出すテストメソッドを持っていなくても、プロセスビルダーがそれをカバーするので、テストは成功します。
プロセスビルダーが無効になっているときに正しい値が返されるテストクラスを作成する方法を理解できません。 DMLを使用してレコードを挿入する必要があります。そのため、クローンを作成できます。
この場合、頂点クラスをどのようにテストする必要がありますか?
を軌道に乗る必要があります。 – EricSSH
私はこのコードを101以上のアカウントに使用する予定でした。その問題に直面しないようにコードをどのように改善すべきですか?それはプロセスビルダでも機能しますか? – Aish
代わりに非同期頂点を使用しても問題ありませんか? – Aish