测试期间未定义构造函数

时间:2014-02-10 21:18:20

标签: java salesforce visualforce apex

我在测试这段代码时遇到了一个麻烦的错误。不确定我做错了什么。我之前测试过标准控制器,但没有测试过getSelectedMethod 的错误: 构造函数未定义:[myClass]。(ApexPages.StandardController)

public class MyClass{

  public List<Web__c> postings {get;set;}
  public static final String POSTINGSTATUS = 'Yes';

  public MyClass (ApexPages.StandardSetController controller) {
     List<Web__c> selectedWeb = (List<Web__c>) controller.getSelected();
     postings = [Select Id, Name,
                    FROM Web___c Where Id IN: selectedWeb
                    AND Date__c != null 
                    AND Date__c > today];
 }
}

我的测试班

private class myTestClass {

  static testMethod void WebTest() {
    List <Web__c> posting = helper.createWeb(4);
    insert posting;

    Test.startTest();  
    PageReference pageRef = Page.VFPAGE;
    Test.setCurrentPage(pageRef);
    ApexPages.StandardController sc = new ApexPages.standardController(posting[0]);
    myClass JPC = new myClass(sc);
    sc.setSelected(posting);
    Test.stopTest();
  }

1 个答案:

答案 0 :(得分:0)

new ApexPages.standardController(posting[0])对我来说不对。

如果你想创建一个new ApexPages.StandardSetController(posting[0])的新实例,或者只是ApexPages.StandardSetController(没有ApexPages.standardController(posting[0])),如果它是一个返回的静态方法,那么它应该是new这样的例子。

顺便说一句:你应该说出你得到的错误以及在问这样一个问题时它在代码中的位置,因为没有这些信息就很难搞清楚。我只是偶然发现了这个,否则我会要求提供这些信息。