我正在嘗試運行介面測驗并閱讀我應該使用@ParameterizedTest。錯誤如下所示。
這是我的代碼:
package de.rhenus.fl.dpx.commons.mapstruct.date;
import de.rhenus.fl.dpx.commons.business.micronaut.date.EmbeddedOffsetDateTimeOracle;
import org.junit.jupiter.params.ParameterizedTest;
import java.time.OffsetDateTime;
import static org.hamcrest.MatcherAssert.assertThat;
class EmbeddedOffsetDateTimeOracleMapperTest {
final EmbeddedOffsetDateTimeOracleMapper mapper;
final OffsetDateTime NOW = OffsetDateTime.now();
public EmbeddedOffsetDateTimeOracleMapperTest(EmbeddedOffsetDateTimeOracleMapper mapper) {
this.mapper = mapper;
}
@ParameterizedTest
void embeddedOffsetDateTimeOracleToOffsetDateTime() {
EmbeddedOffsetDateTimeOracle embeddedOffsetDateTimeOracle = new EmbeddedOffsetDateTimeOracle();
embeddedOffsetDateTimeOracle.setOffset(0);
embeddedOffsetDateTimeOracle.setValue(NOW.toLocalDateTime());
OffsetDateTime result = mapper.map(embeddedOffsetDateTimeOracle);
assertThat("Same OffsetDateTime", result.equals(NOW));
}
@ParameterizedTest
void offsetDateTimeToEmbeddedOffsetDateTimeOracle() {
EmbeddedOffsetDateTimeOracle embeddedOffsetDateTimeOracle = new EmbeddedOffsetDateTimeOracle();
embeddedOffsetDateTimeOracle.setOffset(0);
embeddedOffsetDateTimeOracle.setValue(NOW.toLocalDateTime());
OffsetDateTime result = mapper.map(embeddedOffsetDateTimeOracle);
assertThat("Same OffsetDateTime", result.equals(NOW));
}
}
這是我的錯誤:
配置錯誤:您必須為此@ParameterizedTest org.junit.platform.commons.PreconditionViolationException 配置至少一組引數:配置錯誤:您必須在org.junit.platform.commons 上為此@ParameterizedTest 配置至少一組引數.util.Preconditions.condition(前提條件.java:281)
我需要在哪里傳遞引數來運行我的測驗?
uj5u.com熱心網友回復:
對于 Junit5,對于每個引數化測驗,您需要傳遞一個值集。您可以參考相同的檔案:https ://junit.org/junit5/docs/current/user-guide/#writing-tests-parameterized-tests 。
在您的情況下,它應該如下所示:
@ParameterizedTest
@ValueSource(ints = { -3, 0, 1, 2, 3 })
void offsetDateTimeToEmbeddedOffsetDateTimeOracle(int offset) {
EmbeddedOffsetDateTimeOracle embeddedOffsetDateTimeOracle = new EmbeddedOffsetDateTimeOracle();
embeddedOffsetDateTimeOracle.setOffset(offset);
embeddedOffsetDateTimeOracle.setValue(NOW.toLocalDateTime());
OffsetDateTime result = mapper.map(embeddedOffsetDateTimeOracle);
assertThat("Same OffsetDateTime", result.equals(NOW offset));
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/453291.html
