1

このコードをテストしようとしています。コントローラーをセットアップしてパラメーターを設定する必要があります。コントローラ。

visualForce ページには、連絡先の標準コントローラーがあります。

Public Class myClass{
public ApexPages.standardController controller  {get; set;}
public string pid {get; set;}

    //CONSTRUCTOR
    public myClass(ApexPages.StandardController controller){
        this.controller = controller;
        pId = ApexPages.CurrentPage().getparameters().get('id');
}

テストクラス

@isTest
public class testMyClass{

    static testMethod void myTest(){
        PageReference pageRef = Page.myPage;
    Test.setCurrentPageReference(pageRef);

        //create contact
        Contact cont = new Contact(name ='bob');
        insert cont;

        ApexPages.CurrentPage().getparameters().put('pid', cont[0].id);
        ApexPages.StandardController sc = new ApexPages.standardController(cont[0]);
        myClass sic = new myClass(sc);
        ApexPages.currentPage().getParameters().put(?);
        System.assertEquals('something here');
    }
}
4

2 に答える 2

1

ありがとう、あなたは私を正しい方向に向けました。最終的に、これは私のために働いたものです、

Test.setCurrentPage(pageRef);
ApexPages.CurrentPage().getparameters().put('id', cont[0].id)

あなたが提案した方法では、このエラー「 System.QueryException: List has no rows for assign to sObject 」が発生します

于 2013-10-07T14:50:30.280 に答える