1

トリガーに小さな変更を加えようとしましたが、別のトリガーのユニット テスト カバレッジが不十分 (0%) であるという警告が表示されます (以下に示す setTitle)。

これにはテストが用意されています (以下を参照してください) が、何らかの理由で考慮されていません。このテストは、正常に実行される他のテストと同様に定義されますが、この場合、トリガーは呼び出されません (不十分なカバレッジの警告につながります)。

私が見ることができるアイデアや提案はありますか?また、テストを通過する方法はありますか?

トリガー テスト:

Call_Report__c c = new Call_Report__c(name='test cr', opportunity__c=o.id);
insert c;

トリガー宣言:

trigger setTitle on Call_Report__c (before insert)

ありがとうございました!

4

1 に答える 1

0

ターゲット組織で単体テストを手動で実行して、デバッグ ログを調べるのが最善の方法だと思います。また、機能が期待どおりに動作するかどうかを UI から手動で確認します。

いくつかのヒント:

  1. (サンドボックスにデプロイする場合にのみ適用可能)ばかげているように聞こえますが、トリガーがアクティブであると確信していますか? UI から編集するときのチェックボックス、または付随するメタデータ xml のステータス フィールドがあります。
  2. 同様のチェックボックス - トリガーは有効ですか? その間に変更されたクラスからメソッドを呼び出していた場合、問題が発生します。
  3. 最近導入された検証、Call_Report__cまたはテストで使用された前提条件 (商談など) はあります か?
    • フィールド定義で必須としてマークされたフィールド、
    • テキストフィールドのサイズを短くしましたが、長すぎる文字列を渡しています
    • 検証ルール (これらは後でチェックCall_Report__cされるためではありません) ではなく、商談などです。
  4. テストにいくつか追加system.debug()して、使用している商談が正常に作成されていることを確認できますか。また、開発者が VF 中心になりすぎて、例外をスローせず、例外を飲み込んで VF エラー メッセージを表示する場合もあるので、こちらも確認してくださいApexPages.hasMessages()
  5. (その時点でますますばかげたこと) ;) クラスと関数は isTest / testmethod? としてマークされています。それがオブジェクトの唯一のトリガーですか?それ以上ある場合はbefore insert、順序を保証できません。何かが失敗した可能性がありますか?
  6. ...
于 2012-11-07T07:28:50.300 に答える