Salesforce / Apex,为什么TestDataFactory类包含在代码覆盖百分比中?

时间:2016-01-07 16:19:50

标签: testing salesforce apex

现在我正在制作Apex测试用例以清除代码覆盖率。

使用正常代码,如

https://developer.salesforce.com/docs/atlas.en-us.198.0.apexcode.meta/apexcode/apex_testing_utility_classes.htm

TestDataFactory

@isTest
public class TestDataFactory{
    public List<Account> createAccounts(){
        // data create...
        return accounts;
    }
    // data create methods...
    .
    .
    .
}

MyTestClass

@isTest
private class MyTestClass {
    static testmethod void test1() {
        TestDataFactory.createAccounts();
        // Run some tests
    }
    // other testmethods
    .
    .
    .
}

我的TestDataFactory类的行数是100行,而MyTestClass 100行是测试用例逻辑已经完成的代码封面。

因此,100线/ 200线。 代码覆盖率为50%。

因为TestDataFactory类的代码覆盖率为0%。

我该如何解决?

我很抱歉英语不好。感谢您阅读。

1 个答案:

答案 0 :(得分:1)

它按预期工作。不久,

  

在@isTest注释类中包含除测试方法之外的代码将导致这些行计入整个代码覆盖率数

请检查Why is a Test class evaluated as part of the Organization’s Code Coverage?

我建议你从TestDataFactory类中删除@isTest,不要混淆任何人。当您在测试中使用所有方法时,它将被100%覆盖。