2012-03-02 97 views
0

测试get方法我在我的控制器中的财产,我想测试:我怎么能在我的控制器

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

我不知道如何覆盖在我的测试类的代码。有任何想法吗?

回答

3

有直接的方式,刚刚从测试方法

List<SelectOption> temp = obj.method; 
0

首先,你真的想要一个名为“方法”的属性?看起来很混乱。无论如何,要覆盖代码,只需拨打电话

someObject.get(method); 

但代码覆盖率应该是编写好测试的副作用 - 而不是目标。你应该考虑代码应该做什么,并编写测试来检查(即断言)它正在工作。为使代码效率和可读性智能模式 -

+0

这是非常乐观的:)那我怎么开始为好,然后在每一个部署开始服用10分钟,运行所有“适当”测试你开始改变策略,开始瞄准了必要的覆盖面:) – mmix 2012-03-02 10:49:40

+0

哈哈..这是真的...一些我工作的顾问坚持获得最大覆盖范围。关于作为方法的名称是一个监督..当我键入代码 – Prady 2012-03-02 14:26:03

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