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
iwakiiwaki 

テストコードの作成について

お世話になります。
リードの所有者をボタンひとつでログインユーザーに変更できるように見よう見まねで設定をしました。
設定内容は以下の通りです。

カスタムボタンを作成
表示の種類:詳細ページボタン
動作:JavaScriptを実行
OnClick JavaScript:
{!REQUIRESCRIPT('/soap/ajax/37.0/connection.js')} 
{!REQUIRESCRIPT('/soap/ajax/37.0/apex.js')} 
var ret = sforce.apex.execute('ChangeLeadOwner','hogeMethod',{id:"{!Lead.Id}"}); 
window.location.reload() ;
Apexクラス
global class ChangeLeadOwner {
    webService static void hogeMethod(String id){
        Lead le = [SELECT Id, ownerid FROM Lead WHERE Id=:id];
        le.ownerid = UserInfo.getUserId();
        update le;
    }

}
リードのページレイアウトに上記ボタンを配置して、想定どおりの挙動になったのですが、
テストクラスの書き方がわかりません。

テストクラス上でリードのページを生成して、引数を渡せばいいのでしょうか?
webServiceでのテストクラスの書き方がわからなかったのでどなたかご教示いただけないでしょうか。

何卒宜しくお願い申し上げます。



 
Best Answer chosen by iwaki
Taiki YoshikawaTaiki Yoshikawa
staticの宣言になるので次のように呼び出してテストできると思います。リードのテストデータはテストクラス内でINSERTする必要があります。
// リードテストデータ作成
Lead lead = new Lead();

<ここでInsertするための値を用意>

insert lead;

// テスト実行
Id prmId = lead.Id;
ChangeLeadOwner.hogeMethod(prmId);

// 実行結果の確認
// System.assetEqualsなどをつかって処理結果を検証します。

 

All Answers

Taiki YoshikawaTaiki Yoshikawa
staticの宣言になるので次のように呼び出してテストできると思います。リードのテストデータはテストクラス内でINSERTする必要があります。
// リードテストデータ作成
Lead lead = new Lead();

<ここでInsertするための値を用意>

insert lead;

// テスト実行
Id prmId = lead.Id;
ChangeLeadOwner.hogeMethod(prmId);

// 実行結果の確認
// System.assetEqualsなどをつかって処理結果を検証します。

 
This was selected as the best answer
iwakiiwaki
早速のご回答ありがとうございました!
テストを問題なく実行することができました。