<dependencies> <dependency> <groupId>org.contract4j</groupId> <artifactId>contract4j5</artifactId> <version>5.3.0</version> </dependency> </dependencies> public class MathUtils { @Invariant("result > 0") public static int factorial(int n) { int result = 1; for (int i = 1; i <= n; i++) { result *= i; } return result; } @Requires({"n >= 0", "m > 0"}) @Ensures("result >= n && result <= n + m") public static int sum(int n, int m) { return n + m; } } org.contract4j5.EnforcementMode=STRICT org.contract4j5.verbose.mode=false org.contract4j5.reporter.interfaces=org.contract4j5.reporter.PrintStreamReporter org.contract4j5.reporter.fail.fast=true public class MathUtilsTest { @Test public void testFactorial() { int result = MathUtils.factorial(-1); assertEquals(1, result); } @Test public void testSum() { int result = MathUtils.sum(1, 2); assertEquals(3, result); } }


上一篇:
下一篇:
切换中文