首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >顶点测试类0%代码覆盖率

顶点测试类0%代码覆盖率
EN

Stack Overflow用户
提问于 2014-07-22 13:26:43
回答 1查看 1.6K关注 0票数 0

我正在尝试部署一些简单的代码,当用户单击accept按钮时,它会选中一个复选框(我在该复选框上设置了一个工作流),然后我需要它将我重定向到感谢页面。目前我不知道我的代码是否正确,所以我需要让测试正确来测试它。

我的Apex类:

代码语言:javascript
复制
public class proposalCon {
    ApexPages.StandardController stdCtrl;
    Public List <PPM_Project__c> PPM_Project_List {get;set;}

    public proposalCon(ApexPages.StandardController controller) {
        stdCtrl= controller;
        PPM_Project_List = [ select Short_Description__c from PPM_Project__c ];
    }

    public PageReference save(){

        upsert PPM_Project_List;

        PageReference reRend = new PageReference('/apex/final_approval_canvas_complete');
        reRend.setRedirect(true);
        return reRend;
    }

}

这是我的测试尝试:

代码语言:javascript
复制
@isTest
private class proposalConTest{

    static testMethod void testProposalCon() {

        // List of Message
        List <PPM_Project__c> PPM_ProjectList = new List<PPM_Project__c>();

        PPM_ProjectList.add(new PPM_Project__c (
            Name = 'A Test' ,
            Short_Description__c = 'Good Job', 
            Due_Date__c = system.today()+30,
            Final_Design_Artwork__c ='http://proteusleadership.com/DE123'
        ));

        PPM_ProjectList.add(new PPM_Project__c (
            Name = 'A Test 2' ,
            Short_Description__c = 'Good Job', 
            Due_Date__c  = system.today()+30,
            Final_Design_Artwork__c ='http://proteusleadership.com/DEf123'
        )); 

        insert PPM_ProjectList;

        Account account = new Account(Name='Test Co Pty Ltd');
        insert account;

        Contact contact = new Contact(firstName='TestFN',LastName='TestLN',email='testfn.testln@test.com',AccountId=account.Id);
        insert contact;

    // ** Start Testing ***/

        proposalCon controller = new proposalCon();

        PageReference reRend = new PageReference('/apex/final_approval_canvas_complete');
        reRend.setRedirect(true);

        PPM_ProjectList = [ select Short_Description__c from PPM_Project__c ];
    }
}

我一直在尝试,但没有运气,任何帮助都将不胜感激。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2014-07-28 06:52:10

您需要实例化一个标准控制器(为它提供一个PPM项目列表),然后实例化您的自定义控制器扩展,如下所示:

代码语言:javascript
复制
PPM_Project__c proj = new PPM_Project__c() //you may need further parameters here.

ApexPages.StandardController stdController = new apexPages.StandardController(proj);
proposalCon controller = new proposalCon (stdController); 

然后你可以按你喜欢的方式保存,重新渲染。让我知道这是否有效-我还没有执行这段代码,但这是我创建自己的控制器扩展测试的方式。

这至少应该进行编译。然而,我认为你可能真的想要一个StandardSetController。文档在这里:SalesforceDocs

要为StandardSetController创建一个测试方法,请使用类似以下内容:

代码语言:javascript
复制
//instantiate the ApexPages.StandardSetController with an array of projects
ApexPages.StandardSetController stdSetController = new ApexPages.StandardSetController(PPM_ProjectList);

//create custom controller with the StandardSetController as a param
ProposalCon ext = new ProposalCon(stdSetController);

This guy提供了有关如何为StandardSetController (和其他控制器)创建测试方法的更多详细信息

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24879540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档