And3en
@And3en
Software Engineer at Luxoft

В чем проблема с C4J framework?

Всем привет.
Значит, потребовалось набросать примерчик используя C4J фреймворк.
Написал класс
package ua.avereschaka.Utils;

import de.vksi.c4j.ContractReference;
import ua.avereschaka.Contracts.PhysicsUtilsContract;

@ContractReference(PhysicsUtilsContract.class)
public class PhysicsUtils {

    public double getMinSpeed(double busSpeed, double distToBus, double distToRoad){
        return (busSpeed * distToRoad) / distToBus;
    }

}


После этого, естественно, контракт для него
package ua.avereschaka.Contracts;

import de.vksi.c4j.Contract;
import de.vksi.c4j.Target;
import ua.avereschaka.Utils.PhysicsUtils;

import static de.vksi.c4j.Condition.*;

@Contract
public class PhysicsUtilsContract extends PhysicsUtils {

    @Target
    private PhysicsUtils target;

    @Override
    public double getMinSpeed(double busSpeed, double distToBus, double distToRoad) {
        if (preCondition()) {
            assert busSpeed >= 0;
            assert distToBus >= 0;
            assert distToRoad >= 0;
        }
        if (postCondition()) {
            assert result() != null;
            assert result(Double.class) >= 0;
        }
        return ignored();
    }
}


Запускаю с неверными параметрами(например, передаю отрицательную busSpeed) и он нормально отрабатывает.
В чем проблема?
Юзаю IDEA 15, jar файлик подключил через project settings, ибо этого C4J нету в Maven.
Ткните, пожалуйста, куда мне двигаться, или укажите на явную ошибку в коде.
Спасибо.
  • Вопрос задан
  • 168 просмотров
Решения вопроса 1
And3en
@And3en Автор вопроса
Software Engineer at Luxoft
UPD: SOLVED
В параметрам запуска указал javaagent на C4J jar’ник, и включил assertions:
-javaagent:c4j-6.0.0.jar -ea
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы