Привет, у меня возникли некоторые проблемы с тестированием параметризованных входных данных, где один из моих параметров - это список строк. Метод, который я тестирую, принимает список строк userId и предлагаемую строку userId. Он проходит по списку, и если одна из строк в списке - это userIdsuggestion, он добавляет к нему индекс, присваивает его userId и возвращает его. метод. Мне необходимо использовать параметризованные входы Junit4, и я не могу понять, как это проверить, и правильно ли я настраиваю параметры. Раньше я использовал и Iterable<Object[]>
, но недавно попытался использовать вместо него Collection. Я чувствую, что знаю, как это сделать, но пока ничего не работает.
Прямо сейчас, когда я запускаю testUserId (), код работает, но не работает для индексов [0], [1] с java.lang.IllegalArgumentException: argument type mismatch
. Раньше я получал аналогичную ошибку при использовании Iterable, но она была другой. Если бы кто-нибудь мог мне помочь, я был бы признателен.
public static String createUserId(List<String> userList, String userIdSuggestion) {
String userId = userIdSuggestion;
for (int i = 0; i < 100; i++) {
if (userList.contains(userId)) {
userId = userIdSuggestion + i;
}
}
return userId;
}
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class TestUserProfileWithParam {
public List<String> userList;
public String userIdSuggestion;
public String expected;
public TestUserProfileWithParam(String userIdSuggestion, String expected, List<String> userList) {
this.userList = userList;
this.userIdSuggestion = userIdSuggestion;
this.expected = expected;
}
@Parameterized.Parameters
public static Collection inputs() {
return Arrays.asList(new Object[][] {
{"Mahi_2", Arrays.asList("Mahi", "Mahi1", "Mahi2", "Mahi_1"), "Mahi_2"},
//expected // param 1 list //userIdSugestion
{"Raj0", Arrays.asList("Rajan", "Raj", "Raja", "Raj_a"), "Raj"}
});
}
@Test
public void testUserId() throws Exception {
String retUserId = UserProfile.createUserId(userList, userIdSuggestion);
assertEquals(expected, retUserId);
}
}