-1

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

                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();
                }
            }
4

1 回答 1

0

可能是我回答有点晚了,但是...

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

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

于 2015-10-25T09:14:07.643 回答