我遇到问题。 下面我粘贴一些示例代码。
我的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不允许添加城市了吗?扩展了地址,我们不确定要添加哪个对象(足够公平)
错误如下:类型为List的方法add(capture#1-of?extended Address)不适用于参数(City)
那么我该如何模拟呼叫并在这种情况下创建我的Junit测试?
答案 0 :(得分:0)
创建并返回一个列表。列表也是列表,测试用例不需要地址的子类型,因为您仅访问地址的字段。