Class EdgeCases
Provides pre-built lists of boundary values for primitive types, strings, collections, and date/time types. Useful for parameterized tests that need to cover edge conditions.
为基本类型、字符串、集合和日期/时间类型提供预构建的边界值列表。 适用于需要覆盖边界条件的参数化测试。
Features | 主要功能:
- Numeric boundary values (min, max, zero, overflow edges) - 数值边界值(最小、最大、零、溢出边界)
- String edge cases (null, empty, whitespace) - 字符串边缘用例(null、空、空白)
- Collection edge cases (null, empty, singleton with null) - 集合边缘用例(null、空、含null的单元素)
- Date and Duration boundaries - 日期和持续时间边界
Usage Examples | 使用示例:
// Test all integer edge cases
for (Integer value : EdgeCases.forInt()) {
assertDoesNotThrow(() -> myMethod(value));
}
// Use with JUnit @MethodSource
static Stream<String> stringEdgeCases() {
return EdgeCases.forString().stream();
}
// Non-null string variants
for (String s : EdgeCases.forStringNonNull()) {
assertEquals(s, myTrimMethod(s).trim());
}
Security | 安全性:
- Thread-safe: Yes (all methods return immutable or independent lists) - 线程安全: 是(所有方法返回不可变或独立的列表)
- Null-safe: Some lists contain null by design - 空值安全: 部分列表设计上包含null
- Since:
- JDK 25, opencode-base-test V1.0.3
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionReturns edge case values for boolean/Boolean.forByte()Returns edge case values for byte/Byte.forChar()Returns edge case values for char/Character.Returns edge case values for double/Double.Returns edge case values for Duration.forFloat()Returns edge case values for float/Float.forInt()Returns edge case values for int/Integer.forList()Returns edge case values for List, including null.Returns edge case values for List, excluding null.Returns edge case values for LocalDate.forLong()Returns edge case values for long/Long.forShort()Returns edge case values for short/Short.Returns edge case values for String, including null.Returns edge case values for String, excluding null.
-
Method Details
-
forInt
-
forLong
-
forDouble
Returns edge case values for double/Double. 返回double/Double的边缘用例值。Includes: NEGATIVE_INFINITY, MIN_VALUE, -1.0, -0.0, 0.0, MIN_NORMAL, 1.0, MAX_VALUE, POSITIVE_INFINITY, NaN
包括: 负无穷, 最小值, -1.0, -0.0, 0.0, 最小正常值, 1.0, 最大值, 正无穷, NaN
- Returns:
- list of edge case doubles | 边缘用例双精度浮点数列表
-
forFloat
Returns edge case values for float/Float. 返回float/Float的边缘用例值。Includes: NEGATIVE_INFINITY, MIN_VALUE, -1.0f, -0.0f, 0.0f, MIN_NORMAL, 1.0f, MAX_VALUE, POSITIVE_INFINITY, NaN
包括: 负无穷, 最小值, -1.0f, -0.0f, 0.0f, 最小正常值, 1.0f, 最大值, 正无穷, NaN
- Returns:
- list of edge case floats | 边缘用例单精度浮点数列表
-
forString
-
forStringNonNull
-
forList
Returns edge case values for List, including null. 返回List的边缘用例值,包括null。Includes: null, empty list, singleton list containing null
包括: null, 空列表, 包含null的单元素列表
- Type Parameters:
T- the element type | 元素类型- Returns:
- list of edge case lists (contains null entries) | 边缘用例列表的列表(包含null条目)
-
forListNonNull
Returns edge case values for List, excluding null. 返回List的边缘用例值,不包括null。Includes: empty list, singleton list containing null
包括: 空列表, 包含null的单元素列表
- Type Parameters:
T- the element type | 元素类型- Returns:
- list of edge case lists (no null list) | 边缘用例列表的列表(无null列表)
-
forByte
-
forShort
-
forChar
-
forBoolean
-
forLocalDate
-
forDuration
-