5

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 のコントラクトをどのように使用しますか?

4

2 に答える 2

1

コンパイルの警告が表示されますか?私が見てきたことから、CodeProのコントラクトは、警告を与えるのではなく、適切なアサートを使用してJUnitテストケースを生成することだけを目的としています。

于 2011-11-23T12:50:43.550 に答える
1

Java 開発にコントラクトによる設計を含めたい場合は、間違いなく Cofoja の方が適しています。

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

編集: Eclipse で Cofoja をセットアップする:

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

于 2011-11-23T13:28:37.613 に答える