在一个测试类中使用同一个方法测试多个对象可以通过以下步骤实现:
下面是一个示例代码:
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
import java.util.stream.Stream;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ObjectTest {
@ParameterizedTest
@MethodSource("objectProvider")
public void testObject(Object obj) {
// 执行相同的测试逻辑
int result = obj.someMethod();
// 使用断言验证测试结果
assertEquals(10, result);
}
// 提供多个对象作为参数
private static Stream<Object> objectProvider() {
return Stream.of(new Object1(), new Object2(), new Object3());
}
// 定义多个对象
private static class Object1 {
public int someMethod() {
return 10;
}
}
private static class Object2 {
public int someMethod() {
return 10;
}
}
private static class Object3 {
public int someMethod() {
return 10;
}
}
}
在上述示例中,我们使用了JUnit 5的参数化测试功能,通过@MethodSource
注解指定了参数提供方法objectProvider()
,该方法返回一个Stream
对象,其中包含了多个要测试的对象。在testObject()
方法中,我们使用了断言assertEquals()
来验证每个对象的测试结果是否为10。
请注意,以上示例中的代码仅为演示目的,实际情况下,你需要根据具体的测试需求和对象类型进行相应的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云