Часто Java-класс имеет более одного общедоступного метода, который мы хотим протестировать с помощью JUnit. Что происходит, когда оба общедоступных метода - это то, что мы можем использовать Параметризированные методы?Лучшая практика для нескольких параметризованных тестов JUnit
Должен ли мы хранить класс JUnit Test для каждого общедоступного метода, который мы хотим проверить с параметризованными параметрами, или как мы можем сохранить оба в одном классе JUnit Test?
Образец Параметризованная JUnit Test класс для тестирования общественного метода RegionUtils.translateGeographicalCity (...)
@RunWith(Parameterized.class)
public class RegionUtilsTest {
private String geographicalCity;
private String expectedAwsRegionCode;
public RegionUtilsTest(final String geographicalCity,
final String expectedAwsRegionCode) {
this.geographicalCity = geographicalCity;
this.expectedAwsRegionCode = expectedAwsRegionCode;
}
@Parameters(name = "translateGeographicalCity({0}) should return {1}")
public static Collection geographicalCityToAwsRegionCodeMapping() {
// geographical city, aws region code
return Arrays.asList(new Object[][] { { "Tokyo", "ap-northeast-1" },
{ "Sydney", "ap-southeast-2" },
{ "North Virginia", "us-east-1" }, { "Oregan", "us-west-2" },
{ "N.California", "us-west-1" }, { "Ireland", "eu-west-1" },
{ "Frankfurt", "eu-central-1" }, { "Sao Paulo", "sa-east-1" },
{ "Singapore", "ap-southeast-1" } });
}
@Test
public void translateGeographicalCityShouldTranslateToTheCorrectAwsRegionCode() {
assertThat(
"The AWS Region Code is incorrectly mapped.",
expectedAwsRegionCode,
equalTo(RegionUtils.translateGeographicalCity(geographicalCity)));
}
@Test(expected = NamedSystemException.class)
public void translateGeographicalCityShouldThroughAnExceptionIfTheGeographicalCityIsUnknown() {
final String randomGeographicalCity = RandomStringUtils
.randomAlphabetic(10);
RegionUtils.translateGeographicalCity(randomGeographicalCity);
}
}