Apex触发零代码覆盖

时间:2015-10-14 09:22:21

标签: salesforce apex-code apex test-class apex-trigger

任何人都可以帮我解决我的问题。 我用测试类创建了apex触发器。 测试运行后我没有收到任何错误,但无法获得任何代码覆盖率。 请检查下面是我的顶点触发器和测试类。

                trigger getAllContacts on Scheme__c (after insert,after update) 
            {
                List<ANZSIC_Contact__c> acc = new List<ANZSIC_Contact__c>();
                for(Scheme__c scheme :trigger.new)
                {
                    Id devRecordTypeId = Schema.SObjectType.Account.getRecordTypeInfosByName().get('Underwriter').getRecordTypeId();
                    if(scheme.Account__c != null && scheme.Account__r.RecordTypeId== devRecordTypeId )
                    {
                        List<Contact> con = new List<Contact>();
                        con = [select Id,Email,Phone from contact where Account.Id =:scheme.Account__c];
                        for(Contact c:con)
                        {
                            acc = [select Id from ANZSIC_Contact__c where Contact__c =:c.Id and Scheme__c =:scheme.Id];
                            if(acc ==Null)
                            {
                                ANZSIC_Contact__c ac = new ANZSIC_Contact__c();
                                ac.Contact__c = c.Id;
                                ac.Scheme__c = scheme.Id;
                                ac.Email__c = c.Email;
                                ac.Phone__c = c.Phone;
                                acc.add(ac);
                            }
                            else
                            {

                            }
                        }
                        insert acc;
                    }
                }
            }

            @isTest(seeAllData=false)
            private class Test_getAllContacts
            {
                static testMethod void getAllContacts()
                {
                    test.startTest();
                    RecordType businessAccountRecordType = [SELECT Id FROM RecordType WHERE SobjectType='Account' AND Name = 'Underwriter'];
                    Account acc = new Account();
                    acc.Name = 'Test Account';
                    acc.RecordTypeId = businessAccountRecordType.Id;
                    insert acc;Contact con = new Contact();
                    con.LastName = 'Test data';
                    con.AccountId = acc.Id;
                    con.Email ='n@yahoo.in';
                    con.Phone = '987654321';
                    insert con; Scheme__c  sh = new Scheme__c();
                    sh.Account__c = acc.Id; 
                      test.stopTest();
                }
            }

1 个答案:

答案 0 :(得分:0)

可能我回答有点迟,但是......

@isTest(seeAllData=false):如果将seeAllData设置为false,您的查询将无法获取测试类中的记录类型信息!

将其设置为true或者如果不允许,请在测试类中创建记录类型记录/数据。