function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
システム管理者 182システム管理者 182 

Apexクラスを本番環境に公開する方法

ApexクラスをSandBoxにて作成した後、本来であればテストコード記述し、コードカバー率を75%以上にしなければならないのですが
Apexクラスのコード内にて処理分岐を行っている為全てのコードを通るようなテスト情報を作成することが困難です
コードカバー率の制限に引っかかることなく本番環境へアップする方法はないでしょうか?
Force.com IDEでおこなってもコードカバー率エラーで弾かれてしまいました

対応方法をご存知の方がおられましたらご教授の程宜しくお願い致します
Best Answer chosen by システム管理者 182
Taiki YoshikawaTaiki Yoshikawa
本番環境のコードカバー率は必ず75%以上にする必要があります。(抜け道はおそらく無いと思います。)
すべての処理分岐を通すのは難しいですが、出来る限り通すようにテストを書かなくてはなりません。

お役に立てるかわかりませんが、privateメソッドの処理の場合はTestVisible アノテーションを宣言することでテストを書きやすくなるかもしれません。

Force.com Apex コード開発者ガイド - TestVisible アノテーション
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_annotation_testvisible.htm

All Answers

Taiki YoshikawaTaiki Yoshikawa
本番環境のコードカバー率は必ず75%以上にする必要があります。(抜け道はおそらく無いと思います。)
すべての処理分岐を通すのは難しいですが、出来る限り通すようにテストを書かなくてはなりません。

お役に立てるかわかりませんが、privateメソッドの処理の場合はTestVisible アノテーションを宣言することでテストを書きやすくなるかもしれません。

Force.com Apex コード開発者ガイド - TestVisible アノテーション
https://developer.salesforce.com/docs/atlas.ja-jp.apexcode.meta/apexcode/apex_classes_annotation_testvisible.htm
This was selected as the best answer
Ryosuke KobayashiRyosuke Kobayashi
Yoshikawaさんのおっしゃるとおり、抜け道はないかと。。

>>Apexクラスのコード内にて処理分岐を行っている為全てのコードを通るようなテスト情報を作成することが困難です
テストデータをCSVで作成、テストコード内で読込むことで、テストクラスのコード量を軽減してみてはいかがでしょうか
静的リソースにアップロードしたCSVを、テストメソッド内で読み込むことが出来ます。
 
List<testobject__c> testDataList = Test.loadData(testobject__c.sObjectType, '静的リソース名');
※CSVの文字コードはUTF-8である必要がある。
※対象静的リソースにアーカイブは利用不可

テストデータにリレーションを組む必要があれば、下記を参照してみてください。
http://www.jitendrazaa.com/blog/salesforce/using-test-loaddata-to-import-records-with-relationship/
システム管理者 182システム管理者 182
Ryosuke Kobayashi さん Taiki Yoshikawa さんありがとうございます
お二人から頂いたアドバイスをもとに対応するようにしてみます
早急にご回答頂き有難うございました