いくつくか方法があるような。
そのうち一番楽だったものを。
例えば以下のようなクラスを作ったとする。
1
2
3
4
5
6
7
8
9
10
| @RestResource(urlMapping='/user/*')
global with sharing class userInfo_API {
@HttpPost
global static ResultData doPost(){
RestRequest req = RestContext.request;
String user_id = req.params.get('user_id');
//何らかの処理
}
}
|
この場合、user_id
を渡すためには以下のように記述します。
1
2
3
4
5
6
7
8
9
| @isTest
private class Test_userInfo_API {
static testMethod void postTest(){
RestRequest req = new RestRequest();
RestContext.request = req;
req.addParameter('user_id', 'ユーザーID');
userInfo_API.doPost();
}
}
|
RestRequest
のパラメータにセットしておくだけでOKなよう。
余談。
APIのクラスのみを実行させようとしてもエラーが出る。
System.NullPointerException: Attempt to de-reference a null object
なのでテストメソッド内では最低限以下は必要。
1
2
3
| RestRequest req = new RestRequest();
RestContext.request = req;
userInfo_API.doPost();
|