Cześć. Przychodze do Was z kolejnym problemem odnośnie testów. Czytałem już masę wątków odnośnie testowania loggerów. Np ten: https://stackoverflow.com/questions/1827677/how-to-do-a-junit-assert-on-a-message-in-a-logger . Mimo to, dalej ciężko mi napisac jakikolwiek test z tego względu, że nie wiem co dokładnie ma się w nim znajdować. Z tego co wyczytałem, trzeba stworzyć swojego włansego Appendera i ciężko będzie użyć tutaj mokowania.
Metoda, którą chcę przetestować:
void getAllCustomers() throws SQLException {
for (int i = 0; i < storage.getAllCustomers().size(); i++) {
logger.info("Name: " + storage.getAllCustomers().get(i).getName()
+ "\nSurname: " + storage.getAllCustomers().get(i).getSurname()
+ "\nStreet: " + storage.getAllCustomers().get(i).getStreet()
+ "\nHouse number: " + storage.getAllCustomers().get(i).getHouseNumber()
+ "\nCity: " + storage.getAllCustomers().get(i).getCity()
+ "\nPesel Number: " + storage.getAllCustomers().get(i).getPeselNumber()
+ "\nRent Date: " + storage.getAllCustomers().get(i).getRentDate()
+ "\nClient number: " + storage.getAllCustomers().get(i).getClientNumber());
logger.info("---------------------------");
}
}
Metoda storage.getAllCustomers():
@Override
public List<Client> getAllCustomers() throws SQLException {
List<Client> listOfClients = new ArrayList<Client>();
String sql = "SELECT * FROM `client`";
result = statement.executeQuery(sql);
while (result.next()) {
Client client = new Client();
client.setName(result.getString("namee"));
client.setSurname(result.getString("surname"));
client.setStreet(result.getString("street"));
client.setPeselNumber(result.getLong("peselNumber"));
client.setRentDate(result.getString("rentDate"));
client.setCity(result.getString("city"));
client.setHouseNumber(result.getInt("houseNumber"));
client.setClientNumber(result.getInt("clientNumber"));
listOfClients.add(client);
}
return listOfClients;
}
W klasie z metodą, którą chcę przetestować używam:
private CarRentalStorage storage;
private Logger logger = LoggerFactory.getLogger(CarRentalOptions.class);