SEが投資とダイエットにチャレンジ

SEが投資とダイエットにチャレンジ

投資信託やダイエット、ITの小技、資格試験、読書などを備忘録も兼ねて発信していきます!

Amebaでブログを始めよう!

JavaMelodyとは、APのCPU・メモリ使用量やスレッドの実行状況監視に有効なツールである。

 

製品名:JavaMelody

ベンダー名:OSS(Apache License)

提供形態:Spring-boot、Jenkins、JIRAなどのプラグイン

概要:アプリケーションの使用状況に応じて、アプリケーションの実際の動作に関する統計を測定および計算するためのツールです

環境前提:

  • Java version required for execution: 1.6 or later (JDK or JRE or JRockit from Oracle or OpenJDK or J9 from IBM)
  • Server version required for execution: servlet api 2.4 at least (or JavaEE 1.4), like Tomcat 5.5 or +, GlassFish v2+, JBoss 4+, Jetty 6+, WebLogic 9+

機能:下記の項目をグラフで表示

  • httpリクエスト、sqlリクエスト、jsfアクション、strutsアクション、jspページ、またはビジネスファサードのメソッド(EJB3、SpringまたはGuiceの場合)の実行数、平均実行時間、およびエラーの割合
  • Javaメモリ
  • Java CPU
  • ユーザーセッションの数
  • JDBC接続の数
  • 実行の総数、平均実行時間、CPU時間、エラーの割合を示す概要。
  • また、平均時間が構成可能なしきい値を超えるリクエストに費やされた時間の割合。
  • また、動的パラメーターなしで集約されたリクエストの完全なリスト。それぞれについて、実行数、平均実行時間、平均CPU時間、エラーのパーセンテージ、および実行時間の経時変化のグラフが表示されます。
  • さらに、各httpリクエストは、フローレスポンスのサイズ、SQL実行の平均数、SQLの平均時間を示します。

 

参考文献

GitHub

https://github.com/javamelody/javamelody/wiki

User's guide

https://github.com/javamelody/javamelody/wiki/UserGuide

Users' group

http://groups.google.com/group/javamelody 

仕事で調査することになったので、その際の参考資料として自宅で調査した情報を残したいと思います。

 

今回はテストコードを作成する際に使用するモックライブラリとして知られているMockitoについて説明していきます。
 

いきなりMockitoの説明に入る前に、Mock(モック)とは何か?から説明していきます。

 

Mockとは?

テストに必要な部品の値を疑似的に設定するもの、
他のクラスが返す戻り値を自由に設定することです。

 

まだテスト対象の一部が完成していない時やAWS、Azure、Googleなどの外部サービスを使いたいけど、

まだアカウントが発行されていない時などに、使用するイメージです。

 

関連用語とその役割

  • モック ・・・ メソッド実行に対して、実行回数やパラメータの呼び出しを記録するオブジェクト
  • テストダブル ・・・ テストを目的として本物のオブジェクトの動作をまねているスタブやモックなどのオブジェクトの総称
  • スタブ ・・・ メソッド実行に対して、事前に定義された振る舞い(引数、返り値)を提供するオブジェクト
  • スパイ ・・・ メソッドの実行に対して、実行回数やパラメータの呼び出しを記録するオブジェクト。モックはメソッドの実行中に検証、スパイはメソッドの実行後に検証するという違いがある
  • ダミー
  • フェイク
  • インジェクト

 

色々と調べたところで、そろそろ本題に入りたいと思います。

 

Mockitoとは?

 

Mockitoの特徴

  • アノテーションを付与するだけではなく、初期化処理を実装する必要がある。
  • 書記かにはMockitoAnnotationsのinitMocksメソッドを使用する
  • Beforeを付与したメソッド内で初期化すると良い
  • thenメソッド系とdoメソッド系が有るが、基本的にdoメソッド系を使用していれば良い
  • verifyメソッドでメソッド実行に対する呼出回数や引数の検証出来る

 

代表的なアノテーション

@Mock ・・・ 元オブジェクト全体をモック化する。
@Spy ・・・ 元オブジェクトのすべての内部ロジックを持つが、doメソッド系で内部ロジックの振る舞いを上書きすることが出来る。
@InjectMocks ・・・ モックオブジェクトのインジェクト先オブジェクトを指定できます。

 

スタブメソッドの振る舞い        

  • thenメソッド系
    • thenReturn
    • thenThrow
  • doメソッド系
    • doReturn
    • doThrow

doメソッドに出来てthenメソッドに出来ないことは引数の型チェックくらいなので、doメソッドを使用する    
thenメソッドで出来ないこと

  • voidメソッドをスタブ化する
  • @Spy、spyメソッドで生成したモックオブジェクト
 
 

 

投資信託の収益は以下の通りです。

 

累計買付金額が、102,000円

評価金額が、121,351+24,351

トータルリターンが +23.87%

 
今日は下落しました
 
ひふみプラスはほぼ横ばいだったものの、インデックスファンドがどちらも大きく値を下げ、ここ2日間で回復した分が一気に吹き飛びました
 
やはり、インデックスは一回やめようと思いますが、今週末資格試験なので、それが終わってからにします