Eclipseのデバッグ中の変数値変更(特にDate型)

Eclipseでのデバッグ時操作(変数値変更)

エルデ地方で褪せ人やってたりピンクの悪魔やってる間にいつの間にか1カ月超過ぎてた・・・

ちょっとひと段落したので久々に更新。(Ghostwire:Tokyoもやりたい)

最近一番驚いたのが今の現場で単体テストだーって話聞いたらJUnitでもJestでもなく実質手動シナリオテストだったってやつ。保守・改修の度にこれやってんのかよってなった。

ということで今回はEclipseでデバッグしてる時に変数値変更しないとテストできなかったのでそこをメモ代わりに書いておく。

  1. サーバビューでアプリケーションをデバッグ実行する際、ブレークポイントを設定しておくとそこで処理が停止し、デバッグビューでその時点での変数値の確認ができる。
  2. 変数を右クリックすると「値の変更」を選択し、変更ウインドウを起動
  3. シンプルな文字列や数字ならリテラルテキストに任意の値を入力でOK
  4. nullやオブジェクトなら評価の入力で下記のように入力する
/* 何かしらのオブジェクトの場合*/
return new AnyObject();

/* 何かしらのオブジェクト(値有り) */
AnyObject obj = new AnyObject();
obj.setName("somthing");
return obj;

/* null の場合*/
return null;

上記だけだと大したことなかったのだが、Date型の値変えたかったときに一瞬悩んだ。結論としては下記のようにしてDate型は値を変更する。

/* 現在時刻設定 */
return new java.util.Date();

/* Date型じゃないけど日付文字列を設定したい場合 */
java.util.Date date = new java.util.Date();
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy'年'MM'月'dd'日'E'曜日'k'時'mm'分'ss'秒'");
return sdf.format(date);

まあこんなことせずにJUnitでテストコード書いておけばいいんだけども。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です