如何在我的控制器中测试get方法

时间:2012-03-02 08:44:44

标签: salesforce apex-code

我想在我的控制器中测试一个属性:

public List<SelectOption> exampleProperty {
    get {
        //Do something;
    }
}

我不确定如何在我的测试类中覆盖此代码。有什么想法吗?

3 个答案:

答案 0 :(得分:3)

有直接的方法,只需从测试方法

调用属性
List<SelectOption> temp = obj.method;

答案 1 :(得分:1)

您可能需要直接测试您的属性,特别是如果您使用lazy initialization - 一种智能模式,可以使代码高效可读。

以下是此模式的列表示例:

Integer[] lotteryNumbers {
    get {
        if (lotteryNumbers == null) {
            lotteryNumbers = new Integer[]{};
        }
        return lotteryNumbers;
    }
    set;
}

如果您希望完全覆盖该模式(在您习惯使用它时可能是一个好主意),您需要执行以下操作:

static testMethod void lotteryNumberFactoryText() {
    // test the null case
    System.assert(lotteryNumbers.size() == 0);

    Integer[] luckyNumbers = new Integer[]{33,8};
    lotteryNumbers.addAll(luckyNumbers);

    // test the not null case
    System.assert(lotteryNumbers == luckyNumbers);
}

答案 2 :(得分:0)

首先,你真的想要一个名为“方法”的属性吗?似乎让人感到困惑。无论如何,要覆盖代码,只需致电

someObject.get(method);

但代码覆盖应该是编写好测试的副作用 - 而不是目标。您应该考虑代码应该做什么,并编写测试以检查(即声明)它是否正常工作。