我正在瀏覽stackoverflow以找出有關使用jUnit進行測試的常見建議,但仍有幾個問題。我明白,如果它是複雜的方法進行測試,最好的辦法是將其拆分成小的獨立部分並測試每個部分。但問題是 - 爲什麼我應該這樣做,如果所有這些小部件都容易理解,並且我可以「視覺化」測試它。我還沒有經歷過開發複雜的應用程序,這涉及到許多方法,這些方法必須被測試覆蓋,但我無法想象爲什麼測試提供明顯結果的大方法的部分是有用的。 下一個問題是關於DAO方法測試。坦率地說,我也不明白如何測試它們。你可以看看下面的片段,給我一個想法,測試下列方法的方法是什麼?先謝謝你。jUnit - 意見
1.什麼可以用這種方法測試?
public List<InvoicesBean> getInvoicesData(String selectedContractor){
float sumBalance = getPaymentTotalAmount(selectedContractor);
List<InvoicesBean> invoicesDataWithPaymentsState;
PaymentStateOperations paymentStateOperations = new PaymentStateOperations();
try {
preparedStatement = connection.prepareStatement("SELECT invoice_num, date, due_date, amount FROM invoices WHERE contractor_id IN" +
"(SELECT contractor_id FROM contractors WHERE contractor_name=?)");
preparedStatement.setString(1, selectedContractor);
resultSet = preparedStatement.executeQuery();
invoicesData = new ArrayList<InvoicesBean>();
while (resultSet.next()) {
InvoicesBean invoicesBean = new InvoicesBean();
invoicesBean.setNumber(resultSet.getString(1));
invoicesBean.setDate(resultSet.getString(2));
invoicesBean.setDueDate(resultSet.getString(3));
invoicesBean.setAmount(resultSet.getFloat(4));
invoicesData.add(invoicesBean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
if (resultSet != null) {
resultSet.close();
}
if (preparedStatement != null) {
preparedStatement.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
invoicesDataWithPaymentsState = paymentStateOperations.setPaymentStateInBean(invoicesData, sumBalance);
return invoicesDataWithPaymentsState;
}
你的問題是合理的,但我建議在每個堆棧溢出問題中提出一個問題,這樣每個問題都可以有一個特定的標題和答案。你可以編輯這個只包括你的第一個問題。 –