我正在使用JFreechart API构建一个简单的线图..任何人都可以让我知道如何使用mockito进行单元测试。我仍然是一个新的单元测试框架。真的不知道它是如何工作的
public LineChart(String applicationTitle, String chartTitle) {
super(applicationTitle);
// Create the dataset
CategoryDataset dataset = new DataSet().createDataLineSet();
JFreeChart chart = createChart(dataset, chartTitle);
ChartPanel chartPanel = new ChartPanel(chart);
chartPanel.setPreferredSize(new Dimension(CHART_WIDTH,
CHART_HEIGHT));
setContentPane(chartPanel);
}
/**
* Creates a sample chart
*
* @param dataset
* ,the chartTitle
*
* @return The chart.
*/
public JFreeChart createChart(CategoryDataset dataset, String chartTitle) {
// TODO Auto-generated method stub
// create the chart
JFreeChart chart = ChartFactory.createLineChart(chartTitle, // chart
// title
categoryAxisLabel, // category axis label
valueAxisLabel, // value axis label
dataset, // data
PlotOrientation.VERTICAL, // chart orientation
true, // include legend?
true, // include tooltips?
false // URLs?
);
return chart;
}
答案 0 :(得分:1)
您构建它的方式,这是一个特别难以进行单元测试的类,而且我不确定单元测试会提供多少价值。这个代码是用于学校或工作项目的单元测试所有代码"指令?
首先,根据您的标签进行说明:Mockito不是单元测试框架。
junit是一个单元测试框架,允许您使用运行类的方法编写类。使用异常以及对Assert.assertEquals
, Assert.assertTrue
, and Assert.fail
的调用(例如),您可以用最少的样板编写测试。阅读JUnit's Getting Started page可能会有所帮助。
mockito是一个模拟框架,可让您创建mocks and stubs个对象,并验证您正在测试的系统是否与其协作者进行交互正确。虽然通过检查方法调用的返回值或测试后的系统状态来进行单元测试比较好,但某些类需要与外部系统进行交互。 the Mockito documentation的前几个编号项可能会有所帮助。
至少有三件事情使你的课难以使用模拟和JUnit进行测试:
public
还是final
),这些细节对于不直接受您控制的代码会很危险。还要记住,测试实现是一种反模式 - 单元测试旨在检查您的代码是否产生了正确的结果。看看你发布的代码,我不确定我会在那里测试什么。
另一方面,如果您有一个单独的项目部分加载和处理数字数据以提供给您的图表,那么生成一个从示例文件中获取数据的JUnit测试将非常简单和有用,通过您编写的加载器/处理器运行它,并确保它生成您已经制定并手动确认的正确数字。即使您的加载器/处理器的实现发生了变化,该测试的持续通过也可以保证您的代码仍能正常工作。