Apex错误:“保存错误:方法不存在或签名不正确”

时间:2011-09-13 00:29:19

标签: salesforce apex-code

我目前正在学习apex(使用Force.com IDE),在为自定义控制器编写测试时遇到了一些麻烦。

控制器类如下:

public with sharing class CustomController {
    private List<TestObject__c> objects;

    public CustomController() {
        objects = [SELECT id, name FROM TestObject__c];
    }

    public List<TestObject__c> getObjects() {
        return objects;
    }
}

,测试类是:

@isTest
private class ControllerTest {
    static testMethod void customControllerTest() {
        CustomController controller = new CustomController();

        System.assertNotEquals(controller, null);

        List<TestObject__c> objects;

        objects = controller.getObjects();

        System.assertNotEquals(objects, null);    
    }
}

objects = controller.getObjects();行上,我收到一条错误消息:

  

保存错误:方法不存在或签名不正确:[CustomController] .getObjects()

任何人都知道为什么我会收到此错误?

1 个答案:

答案 0 :(得分:3)

一个很好的速记:

public List<TestObject__c> objects {get; private set;}

它为你创建了getter / setter,看起来更干净。至于你当前的问题,是的 - 将代码直接存储到生产中很困难 - 特别是在单独的文件中使用测试类。

最好在沙箱/ dev org中执行此操作,然后部署到生产(部署到服务器 - Force.com IDE)。但是如果你必须直接保存到生产中,那么我会将测试方法与你的课程结合起来。但从长远来看,在专用测试类上安装@test是可行的方法。它不会以这种方式消耗你宝贵的资源。