我以为我了解 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 的合约呢?