霍格沃兹测试开发学社
ceshiren.com
@TestInstance(Lifecycle.PER_CLASS)
@ParameterizedTest 方法 | 工厂方法 |
---|---|
void test(int) |
static int[] factory() |
void test(int) |
static IntStream factory() |
void test(String) |
static String[] factory() |
void test(String) |
static List<String> factory() |
void test(String) |
static Stream<String> factory() |
void test(String, String) |
static String[][] factory() |
void test(String, int) |
static Object[][] factory() |
void test(String, int) |
static Stream<Object[]> factory() |
void test(String, int) |
static Stream<Arguments> factory() |
void test(int[]) |
static int[][] factory() |
void test(int[]) |
static Stream<int[]> factory() |
void test(int[][]) |
static Stream<int[][]> factory() |
void test(Object[][]) |
static Stream<Object[][]> factory() |
/**
* @Author: 霍格沃兹测试开发学社
* @Desc: '更多测试开发技术探讨,请访问:https://ceshiren.com/t/topic/15860'
*/
public class MethodSourceTest {
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// 第一种在 @MethodSource 中指定方法名称
@MethodSource("stringProvider")
void testWithLocalMethod(String argument) {
assertNotNull(argument);
}
static Stream<String> stringProvider() {
// 返回字符串流
return Stream.of("apple", "pear");
}
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// 第二种在 @MethodSource 不指明方法名,框架会找同名的无参数方法
@MethodSource
void testWithRangeMethodSource(Integer argument) {
assertNotEquals(9, argument);
}
static IntStream testWithRangeMethodSource() {
//int类型的数字流
return IntStream.of(1,2,3);
}
}
public class MultiMethodParamDemoTest {
// @ParameterizedTest 注解指明为参数化测试用例
@ParameterizedTest
// @MethodSource 不指明方法名,框架会找同名的无参数方法
@MethodSource
// 多个参数和种类, 包含字符串、整型
void testWithMultiArgsMethodSource(String str, int num) {
assertEquals(5, str.length());
assertTrue(num >= 2 && num <= 3);
}
static Stream<Arguments> testWithMultiArgsMethodSource() {
// 返回 arguments(Object…)
return Stream.of(
arguments("apple", 2),
arguments("pears", 3)
);
}
}