私たちのプロジェクトの単体テスト (JUnit) を書き始めたいと思います。これは J2EE 1.4 と Hibernate 3.1 を使用しており、接続コードとサービス層 (サーブレットが正しければ? 訂正してください!) の間に密結合があります。
したがって、いくつかのフォーム値を保持する機能があるとします。構造は次のようなものです。
MyServlet.java
public void doGet(ServletRequest request, ServletResponse response)
{
T_Donation instance - new T_Donation();
instance.setName(request.getParameter("name"));
instance.setAmount(request.getParameter("amount"));
MyDAO dao = new MyDAO();
Boolean b = dao.persistInstance(instance);
if(b.booleanValue())
{
// forward to .jsp file by means of RequestDispatcher
}
}
モデル T_寄付
public class T_Donation implements Serializable
{
private String name;
private String amount;
// getters, setters
// equals, hashcode
}
DAO クラス
public class MyDAO
{
public boolean persistInstance(T_Donation instance)
{
Session session = HibernateUtil.getSessionFactory().openSession();
Transaction tx = null;
try
{
tx = sesion.beginTransation();
// setters again if needed
session.save(instance);
tx.commit();
}
catch(Exception ex)
{
ex.printStackTrace();
return false;
}
finally
{
session.close();
}
return true;
}
}
コードベースはこんな感じ。私はDAOパターンを学んでいますが、ここでも間違って実装されていると思います。
私の質問は、この小さな機能を考慮して、どのように単体テストを書き始めるのでしょうか? そして、それはいくつ必要ですか?最初のステップは私にとって本当に難しいです。
また、よりクリーンなコードの実践に関するコメントも歓迎します。