execute
私は Struts2 フレームワークを使用しており、以下のメソッドを単体テストしたいと考えています。
public String execute() {
setDao((MyDAO) ApplicationInitializer.getApplicationContext().getBean("MyDAO"));
setUserPrincipal(); //fetches attribute from request and stores it in a var
setGroupValue(); //
setResults(getMyDao().getReportResults(getActionValue(), getTabName());
setFirstResultSet((List) getResults()[0]);
setSecondResultSet((List) getResults()[1]);
return SUCCESS;
}
ご覧のとおり、ほとんどのロジックはデータベースに関連しています。では、この機能の単体テストを行うにはどうすればよいでしょうか。HTTPServletRequest
内部にいくつかのリクエスト変数を使用して をモックして、単体テストを行いたいと思います。
私の質問は次のとおりです。
- ブラウザから来ているかのようにリクエスト変数を偽装/モックするにはどうすればよいですか
- 単体テストで実際の DAO を呼び出して、データが戻ってくることを確認する必要がありますか?
- その場合、jndi プール設定がアプリケーション サーバーに存在するため、DAO はサーバーに関連付けられているため、単体テストから DAO を呼び出すにはどうすればよいですか。
これを実際に達成する方法を示す本/記事をいただければ幸いです。