Как вы используете контракты CodePro в Eclipse? - PullRequest
5 голосов
/ 17 ноября 2011

Я думал, что понял контракты 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?

Ответы [ 2 ]

1 голос
/ 23 ноября 2011

Если вы хотите включить дизайн по контракту в разработку Java, Cofoja, безусловно, лучший выбор:

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

Edit: Настройка Cofoja в Eclipse:

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

1 голос
/ 23 ноября 2011

Вы уверены, что должны получать предупреждения компиляции? Из того, что я видел, контракты в CodePro предназначены только для генерации тестовых случаев JUnit с правильными утверждениями, а не для предупреждения.

...