#はじめに
こんにちわ、こんばんわ。かえるのクーの助手の「井戸中 聖」(いとなか あきら)です。
初めて書きます。Qiitaを一度使って(投稿して)みたかったので、とりとめのない記事ですが、書いてみます。
この記事は、マークダウン記載の練習中です。徐々にフォーマットをちゃんとしますので、しばらくご容赦ください。画像の張り付け方も勉強中です。
#この記事は以下の対応のための内容です
- java/Eclipseでホワイトボックステストをしているが、開発中のプロジェクトでJSONを使っていない。オブジェクト内容全体がすぐに確認できない。
- テスト対象のプログラムコード自体には一切手を加えたくない。JSON支援クラスのimportもテスト用のコーディングも対象ソースに内挿したくない/やりたくてもできない。
- オブジェクト構成がとても複雑な場合などに内容確認に時間がかかる。任意の場所で任意のオブジェクト内容をJSON形式で確認したい。
そんなときに、JSON形式でオブジェクト内を確認するための方法です。
#手順
-
mavenも書き換えたくないので、手動でjarファイルを取得し、外部jarとして登録する。
※例えばgson-x.x.x.jar
(com.google.gson.Gson):を個別に入手して参照ライブラリに登録します。(.x部はバージョン値) -
デバッガで確認したいオブジェクトの付近でブレークポイントで止める。
-
デバッガの式ペインの名前部分に
(new com.google.gson.Gson()).toJson(対象オブジェクト)
の文字列を入力して改行を押す。 -
値部分に対象オブジェクトの内容がJSON形式で展開されて表示される。
-
JSON形式文字列部分をCopy&Pasteして適度に整形すれば、そのままテストエビデンスとして、貼り付けられる。
#ポイント
- デバッグ実行時に式の名前部分に入力した文字列がJava変数/オブジェクトとして評価されます。
- new や.get()/.set()なども都度実行されます。制約も多くあり、新規の変数定義などはできません。
- この機能を使って、ソースを一切変更せずにオブジェクト内部をJSON形式で「動的に」デバッグ確認できます。
- オブジェクト/クラスにJSON関連のアノテーション等がまったく不要であるところがミソです。
#いいところ
ホワイトボックステストがはかどります。
#わるいところ
マシン性能にも依存しますが、式ペインの名前部分にたくさんGson()のnewを書くと、デバッグの「もっさり」感がでてきます。
では、ごきげんよう。