你如何在Eclipse中使用CodePro的合同?

时间:2011-11-17 03:02:15

标签: java eclipse contracts 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生成的junit测试方法不受合同的影响。

那么你如何使用CodePro的合同?

2 个答案:

答案 0 :(得分:1)

你确定你应该收到编译警告吗?从我所看到的,CodePro中的契约只是用正确的断言生成JUnit测试用例,而不是发出警告。

答案 1 :(得分:1)

如果您想在Java开发中包含合同设计,Cofoja绝对是更好的选择:

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

编辑: 在Eclipse中设置Cofoja:

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