tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:getPassword処理のテストクラス実装について

resetPassword処理で指定したユーザのパスワードをリセットできますが、getPassword()を利用することでリセット後のパスワードを取得することができます。
f:id:tyoshikawa1106:20161012071616p:plain


これのテストクラスを書くときはどんな感じになるか確認してみました。

public with sharing class ChangePWDemoController {
    
    public ChangePWDemoController() {
        
    }
    
    public String doChange(Id userId) {
        String result = system.resetPassword(userId,false).getPassword();
        return result;
    }
}
@isTest
private class ChangePWDemoControllerTest {
    
    private static User testAdminUser = new User(Id = UserInfo.getUserId());
    
    static testMethod void doChangeTest() {
        
        System.runAs(testAdminUser) {

            Test.startTest();
            
            ChangePWDemoController cls = new ChangePWDemoController();
            String result = cls.doChange(testAdminUser.Id);
            
            Test.stopTest();

            System.assertEquals(String.isNotEmpty(result), true);
        }
    }
}


パスワードの値は毎回異なると思いますので、値の存在チェックだけ行う形になると思います。