Я думал, что понял контракты 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());
}
}
Запуск основного метода (String []) приводит к печати:
number: -5
.Не было предупреждений о компиляции (ожидается) и не было выдано никаких исключений.Кроме того, методы тестирования junit, сгенерированные CodePro, не были затронуты контрактами.
Итак, как вы используете контракты CodePro?