Я новичок в модульном тестировании. У меня есть класс Ckeckout
, основной функцией которого является печать суммы, подлежащей оплате за книги. Пользователь вводит названия книг в командной строке, и на основании некоторых вычислений я должен вывести окончательную цену. Вот Book
класс:Как написать тест JUnit в следующем случае?
public class Book {
private String title;
private double price;
private int year;
public Book(String title, double price, int year) {
super();
this.title = title;
this.price = price;
this.year = year;
}
}
А вот Checkout
класс:
public class Checkout {
private List<Book> books;
public Checkout(List<Book> books) {
super();
this.books = books;
}
//calculate the final price
private double getPrice(){
//return some double
}
}
То, что я хочу, чтобы проверить это просто getPrice
метод. Однако для этого мне нужно создать список Book
объектов в моем CheckoutTest
? Кроме того, мне нужно будет проверить окончательный результат с очень длинным номером (например, 62.01997301). Не проще ли тестировать метод main(), поскольку в моем модульном тесте не будет необходимости создавать объекты Book
(я буду работать только с Strings
), и я могу проверить вывод с более коротким номером (как 62.01)?
Просто хочу прокомментировать, вы, вероятно, не должны использовать double для хранения цен из-за присущей неточности типов с плавающей точкой. – juunas