所以我有这个创建帐户的方法:
private int balance;
@Requires("initialBalance > -1")
public Account(int initialBalance) {
balance = initialBalance;
}
注意" @Requires(" initialBalance> -1")"停止使用负余额创建的帐户。
我尝试运行以下测试,以确保未创建负余额的帐户:
@Test(expected=PreconditionError.class)
public void testAccountBad() {
new Account(-1);
}
代码运行正常,但即使在测试中声明预期的前提条件错误,测试也会失败。
建设性的帮助将不胜感激,仍然在这个领域找到了方向。
答案 0 :(得分:0)
您是否正在将{{3}}用于@Requires?
如果是,它使用“字节码检测来提供运行时检查”。
要进行工作测试,请确保:
要执行使用合同检查编译的代码,请确保 生成的文件(附加的.class和.contracts文件)在你的 类路径并将Cofoja JAR文件作为Java代理启用。
或者使用位于PreMain类中的离线指导者, 在com.google.java.contract.core.agent包下,并获取路径 将文件分类为命令行参数。