我是单元测试新手。 我有一个类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
方法。但是,要这样做,是否必须在我的CheckoutTest
中创建Book
对象列表?另外,我将不得不用最长的数字来验证最终结果(如62.01997301)。测试main()方法并不容易,因为在我的单元测试中,不需要创建Book
对象(我只能使用Strings
),并且我可以使用较短的数字验证输出(像62.01)?
只是想评论,你可能不应该使用双重存储价格,因为浮点类型固有的不准确性。 – juunas 2015-04-06 10:10:21