在Java中,JUnit 5是一個流行的單元測試框架,它支持參數化測試。參數化測試允許你使用不同的輸入數據多次運行相同的測試邏輯。這對于測試具有多種可能輸入的方法非常有用。
要在JUnit 5中實現參數化測試,請按照以下步驟操作:
pom.xml
文件中: <dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
@ParameterizedTest
注解標記你想要進行參數化的測試方法。@ValueSource
、@EnumSource
、@CsvSource
等注解來定義測試方法的輸入源。這些注解會為你的測試方法提供不同的輸入參數。下面是一個簡單的參數化測試示例:
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class ParameterizedTestExample {
@ParameterizedTest
@ValueSource(ints = {1, 2, 3, 4, 5})
void testSquare(int input) {
int expected = input * input;
int actual = square(input);
assertEquals(expected, actual, "Square of " + input);
}
private int square(int x) {
return x * x;
}
}
在上面的示例中,testSquare
方法被標記為參數化測試,并使用@ValueSource
注解提供了一組整數輸入。對于每個輸入值,測試方法都會運行一次,并檢查輸入值的平方是否正確。