下面列出了org.junit.jupiter.api.extension.ExtendWith#org.junit.jupiter.api.RepetitionInfo 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@RepeatedTest( value = 2 )
void junit_jupiter_repeated_test_should_be_found( final RepetitionInfo repetitionInfo ) {
final String expectedClassName = getClass().getName();
final String expectedMethodName = "junit_jupiter_repeated_test_should_be_found";
final TestCaseAnnotationType expectedType = TestCaseAnnotationType.REPEATABLE;
final int expectedInvocationCount = repetitionInfo.getCurrentRepetition();
final Optional<String> actualClassName = TestCaseFinder.getInstance().findTestCaseClassNameInStack();
assertThat( actualClassName ).hasValue( expectedClassName );
final Optional<String> actualMethodName = TestCaseFinder.getInstance().findTestCaseMethodNameInStack();
assertThat( actualMethodName ).hasValueSatisfying( methodName -> methodName.startsWith( expectedMethodName ) );
final TestCaseInformation info = TestCaseFinder.getInstance().findTestCaseMethodInStack();
assertThat( info.getStackTraceElement().getClassName() ).isEqualTo( expectedClassName );
assertThat( info.getStackTraceElement().getMethodName() ).isEqualTo( expectedMethodName );
assertThat( info.getTestCaseAnnotationType() ).isEqualTo( expectedType );
assertThat( info.getInvocationCount() ).isEqualTo( expectedInvocationCount );
}
@RepeatedTest(20)
void valueCountUnderflowThrows(RepetitionInfo info) {
var i = info.getCurrentRepetition();
var line = "-" + ",-".repeat(i - 1);
if (i < 9) {
var e = assertThrows(IllegalArgumentException.class, () -> new Item(line));
assertEquals("Expected at least 9 values, only got " + i + " in: " + line, e.getMessage());
} else {
assertDoesNotThrow(() -> new Item(line));
}
}
@RepeatedTest(3)
void test_with_RepetitionInfo_Injection(RepetitionInfo repetitionInfo) {
System.out.println("@RepeatedTest with RepetitionInfo Injection");
assertEquals(3, repetitionInfo.getTotalRepetitions());
// below code shouldn't be part of test method
// move it to @BeforeEach/@AfterEach
// System.out.println("Current Test Count = "+repetitionInfo.getCurrentRepetition());
}
@RepeatedTest(5)
void repeated(RepetitionInfo repetitions) {
REPETITION_COUNT++;
// RepetitionInfo::getCurrentRepetition starts with 1
assertThat(repetitions.getCurrentRepetition()).isEqualTo(REPETITION_COUNT);
assertThat(repetitions.getTotalRepetitions()).isEqualTo(5);
}
@RepeatedTest(2)
void test(RepetitionInfo repetitionInfo) {
System.out.println("** Test " + repetitionInfo.getCurrentRepetition()
+ "/" + repetitionInfo.getTotalRepetitions());
}
@RepeatedTest(2)
void test1(RepetitionInfo repetitionInfo) {
System.out.println("** Test " + repetitionInfo.getCurrentRepetition()
+ "/" + repetitionInfo.getTotalRepetitions());
}
@RepeatedTest(5)
void repeatedTestWithRepetitionInfo(RepetitionInfo repetitionInfo) {
assertEquals(5, repetitionInfo.getTotalRepetitions());
}
@RepeatedTest(5)
void repeatedTestWithRepetitionInfo(RepetitionInfo repetitionInfo) {
assertEquals(5, repetitionInfo.getTotalRepetitions());
}
@RepeatedTest(5)
void repeatedTest(RepetitionInfo repetitionInfo) {
assertEquals(5, repetitionInfo.getTotalRepetitions());
}
@BeforeEach
void setUp(RepetitionInfo repetitionInfo, TestInfo testInfo) {
System.out.println("Method = " + testInfo.getTestMethod().get().getName() + ", Execution Count = "
+ repetitionInfo.getCurrentRepetition());
}
@RepeatedTest(3)
@ExtendWith(RandomIntegerResolver.class)
void repetitionInfoFirst(RepetitionInfo info, TestReporter reporter, int randomized) {
reporter.publishEntry("first parameter", "" + randomized);
}
@RepeatedTest(3)
@ExtendWith(RandomIntegerResolver.class)
void repetitionInfoLast(TestReporter reporter, int randomized, RepetitionInfo info) {
reporter.publishEntry("first parameter", "" + randomized);
}
@DisplayName("Calling repeated...")
@RepeatedTest(
value = 5,
name = "... {currentRepetition}th "
+ "of {totalRepetitions} times")
void repeatedWithDisplayName(RepetitionInfo repetitions) { }
@RepeatedTest(3)
void repeatedTestWithRepetitionInfo(RepetitionInfo repetitionInfo) {
System.out.println("Repetition #" + repetitionInfo.getCurrentRepetition());
assertEquals(3, repetitionInfo.getTotalRepetitions());
}
@RepeatedTest(value = 3, name = RepeatedTest.SHORT_DISPLAY_NAME)
public void test(RepetitionInfo info) {
assertTrue(1 == 1);
logger.info("Repetition #" + info.getCurrentRepetition());
}
@RepeatedTest(2)
public void repeatedTest(RepetitionInfo repetitionInfo)
{
StackTraceNamerUtils.assertNamerForFramework(getClass().getSimpleName(), "repeatedTest");
}