Junit4 параметризованные входы - PullRequest
0 голосов
/ 26 мая 2020

Привет, у меня возникли некоторые проблемы с тестированием параметризованных входных данных, где один из моих параметров - это список строк. Метод, который я тестирую, принимает список строк 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);
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...