我想在我的控制器中测试一个属性:
public List<SelectOption> exampleProperty {
get {
//Do something;
}
}
我不确定如何在我的测试类中覆盖此代码。有什么想法吗?
答案 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);
但代码覆盖应该是编写好测试的副作用 - 而不是目标。您应该考虑代码应该做什么,并编写测试以检查(即声明)它是否正常工作。