如何在 Eclipse 中使用 CodePro 的合约?



我以为我理解CodePro的合同,但它们似乎没有效果。例如:

public class ContractTest {
    private int number;
    /**
     * @pre inputNumber > 0
     * 
     * Alternatively:
     * @post number > 0
     */
    public void setNumber(int inputNumber) {
        number = inputNumber;
    }
    public int getNumber() {
        return number;
    } 
    public static void main(String args[]) {
        ConditionsTest conditionsTest = new ConditionsTest();
        conditionsTest.setNumber(-5);
        System.out.println("Number: " + conditionsTest.getNumber());
    }
}

运行main(String[])方法原因:

number: -5

要打印。没有编译警告(预期),也没有抛出异常。同样,由CodePro生成的单元测试方法不受合同的影响。

那么如何使用CodePro的合约呢?

您确定应该得到编译警告吗?从我所看到的来看,CodePro中的契约只意味着生成具有适当断言的JUnit测试用例,而不是给出警告。

如果您想在java开发中包含契约式设计,Cofoja绝对是更好的选择:

http://code.google.com/p/cofoja/

编辑:在Eclipse中设置Cofoja:

http://fsteeg.com/2011/02/07/setting-up-contracts-for-java-in-eclipse/

最新更新