Как добавить?который расширяет некоторый класс в списке - PullRequest
0 голосов
/ 05 апреля 2019

У меня проблемы с проблемой. Ниже я вставляю пример кода.

Мой класс DefinedAddress будет извлекать адрес из БД.

@Autowired
DBConnection connection;

public class DefinedAddress {

    public String getAddress() {

        List<? extends Address> addressList =connection.getAddresss("SELECT address FROM Address WHERE Id = 1;")

        return  addressList.get(0).location);
    }
}

Я создаю Junit этого класса, и у меня основная логика, как показано ниже: Я собираюсь смоделировать вызов метода базы данных connection.getAddresss и верну список с одним адресом.

public class DefinedAddressTest {

    public static void main(String[] args) {
        // Create a list 
        List<? extends Address> addressList = new ArrayList<>();
        City city = new City();
        city.setLocation("CurrentLocation");
        addressList.add(city);//Compile time issue 
        //mock Defined Addrss getAddress() method to fetch the address
        Mockit.when(connection.getAddresss("Query").return(addressList );
    }
}

Теперь я знаю, что addressList не позволит добавить город как есть? расширяет адрес, и мы не уверены, какой объект он собирается добавить (достаточно справедливо)

ошибка такая: метод add (захват № 1-из? Extends Address) в списке типа не применим для аргументов (город)

Так, как я могу смоделировать вызов и создать в этом случае мой тест Junit?

1 Ответ

0 голосов
/ 05 апреля 2019

Создать и вернуть список.Список также является списком, и вам не требуется подтип адреса для вашего тестового примера, поскольку вы получаете доступ только к полю адреса.

...