「ブログ」カテゴリーアーカイブ

ブログ投稿用のカテゴリ

JUnit:privateメソッドを実行(テスト)する方法

JUnitでテストする時にprivateメソッドをテストする方法をご紹介します。
privateメソッドをテストするにはリフレクション「java.lang.reflect.Method」を使用することで実行可能となります。

Javaソース

JUnitサンプル

JUnit:private変数を取得・更新する方法

JUnitでテストする時にprivateなメンバ変数を取得・更新したい場合の方法をご紹介します。
今回はAPI「JMockit」の「Deencapsulation」クラスを使用してカプセル化された変数を参照・更新する方法です。

JMokitのダウンロード

    以下サイトへアクセスしてダウンロードした「jmockit.jar」ファイルをクラスパスへ追加します。
    クラスパスへ追加する際、JUnitより先に読み込む必要があるのでJUnitより上位へ配置します。
    JMokitのダウンロード

JMokitのJavadoc

Javaソース

JUnitサンプル

djUnitでのプライベートコンストラクタのテスト方法

javaではUtilクラスなどのコンストラクタは無駄なインスタンス化を抑制するためにコンストラクタの修飾子をprivateにする事がよくあります。ただdjUnitで試験する場合にはコンストラクタを呼び出したくても修飾子がprivateになっていてはインスタンス化が出来ずに呼び出せないのでカバレッジを100%に出来ません。そういう場合にプライベートコンストラクタをテストする方法についてメモしておきます。

Javaソース

JUnitサンプル

djUnitを実行してクラス名の行が未実行になる

基本的な事ですがjavaのテストでdjUnitを使用していると以下の様にクラス名を指定している行が未実行になってしまうという事がありました。
この原因と対応方法についてメモして置きます。

クラス名が未実行となる原因

  • コンストラクタが定義されていない。

対応方法

  • 以下の様にコンストラクタを定義します。

    未実行の箇所がクラス名の行からコンストラクタの行へ変化したのがわかります。後はコンストラクタ用のテストメソッドを記述すれば全て実行済となります。

Oracle:リカバリとリストアの違い

Oracleデータベースのリカバリとリストアの概念が少し理解しずらかったので整理しておこうと思います。
基本的にはパソコンのOSなどにおけるリカバリ(復旧)/リストア(復元)と言葉的な概念は同じですが、実作業は異なるものだと別物と覚えたほうが良さそうです。

リストアとは

  • 一般的にパソコンのリストアといえばバックアップデータを用いてOSなどのデータを元の状態に戻す(復元)することを指します。
  • Oracleデータベースのリストアとは、バックアップ媒体から元の場所もしくは新しい場所へデータベースを構成する物理ファイルをコピーして復元することを指します。

リカバリとは

  • 一般的にパソコンのリカバリといえばパソコンにインストールされているOSを出荷時の状態に戻す(復旧する)作業のことをいいます。
  • Oracleデータベースのリカバリとは、REDOログファイル(バックアップ取得~現在までのトランザクションの変更情報が保存されています)を使用してバックアップ後に作成されたデータベースへ変更情報を反映してデータを復旧することを指します。

サクラエディタでマクロを使用して処理を繰り返し実行する方法

エディタでソースコードを編集している時など同じ操作を繰り返えして実行したい時があります。
そういう場合にはサクラエディタのマクロ機能を利用すると便利です。

マクロ実行手順

  1. まずはマクロに操作を記憶させる為にメニューの「ツール」⇒「キーマクロの記録開始」を選択します。
  2. マクロの記録が開始されるとタブに「【キーマクロの記録中】」と表示されます。
  3. マクロが記録開始されたら繰り返し操作したい処理を入力します。例としてここでは「123」と入力してEnterまでの操作を実行しています。
  4. 記録したい操作が終了したらメニューの「ツール」⇒「キーマクロの記録終了」を選択します。
  5. 後は「Ctrl」+「Shift」+ 「Lキー」を押下するとマクロに記録された操作を繰り返し実行出来ます。

IE11にのみCSSを適用させる方法

業務でIE8には対応していた画面をIE11にも対応させる必要が出てきたのでIE11にのみスタイルシートを適用させる方法をご紹介します。
IE11にのみCSSを適用させたい場合はCSSハックという手法を用いると便利です。

IE11にのみ適用させるCSSハックの記述方法

IE10以下に適用させるCSSハックの記述方法

    IE10以下に適用させたい場合は「*::-ms-backdrop,」の指定を外します。

実行サンプル

    ie11でこのページを表示した場合のみ、この文章がフォントサイズが24pxで赤字で表示されます

IEに互換表示をさせない「X-UA-Compatible」の指定方法

Web開発者泣かせでお馴染みのIEにはIEの過去バージョンモードで表示出来る互換表示機能があります。
しかし互換表示することで表示が崩れてしまう場合、デフォルトでは互換表示させたくないケースが多々あります。
そういう場合にはmetaタグで「X-UA-Compatible」を指定する事で互換モードではなく、使用しているIEの各バージョンの標準モードでレンダリングさせる事が可能となります。

使用しているIEの各バージョン毎でレンダリング

    使用しているIEの各バージョン毎でレンダリングさせたい場合は「X-UA-Compatible」へ「IE=edge」を指定します。

IEのバージョン固定でレンダリング

    特定のIEのバージョン固定でレンダリングさせたい場合は「X-UA-Compatible」へIE8なら「IE=8」、IE11なら「IE=11」を指定します。
    例えば「IE=8」を指定した場合、ブラウザのバージョンはIE11でもIE8の互換モードでレンダリングされます。

Oracle Bronze DBA11g 合格!

本日、「ORACLE MASTER Bronze DBA11g」を受験してきました。

結果は68%でギリギリで合格でした(^^;;
正直、試験終了時には落ちててもおかしくないなあという手応えだったので、運良く拾ったという感じでした。

学習期間

    学習期間はおよそ3週間程で時間的には30~40時間程。

学習教材

    使用したテキストはamazonで評価の高い「ORACLE MASTER Bronze[Bronze DBA11g](試験番号:1Z0-018)完全詳解+精選問題集」のみ使用しました。
    章末問題を3週、巻末の模擬試験2つを9割以上正解(5週)するまで学習しました。
    章末問題と模擬試験を限りなく100%の正答率で且つ内容をきっちり理解しておく必要があります。
    正解だけ覚えていると実際の試験で足元救われる可能性も十分あるように思いました。

Oracleの業務経験

    SQLを少々触った程度の経験しかないのでDBA関連の知識はほぼ初心者レベル。

実際の試験難易度

    上記テキストの模擬試験よりは難易度は高めです。
    テキストと同様の問題は3~4割程度で大半は模擬試験問題の応用編という印象でした。
    選択式も2つより3つ選択する問題の方が多かった印象なので、曖昧な理解のままだと危ないです。

Oracleの試験はピアソンVUEですが、以前は試験終了後に即合否がわかりましたが、今は受験後30後位にメールで送られてきてOracleのサイトにアクセスする事で合否が確認出来る形式になっています。そのメールが来るまでの間がなんとも気持ち悪かった・・・。
今回は何とか合格は出来ましたが、理解度はまだまだなので引き続き学習は必要です。

さて次は何受けようかな。

Excel:生年月日から年齢を算出する方法

Excelで生年月日から年齢を算出する方法をご紹介します。
生年月日を表示する為にはDATEDIF関数をすると簡単に年齢を算出出来ます。

動作環境

    Microsoft Office Professional 2013

年齢を表示する手順

  1. まず生年月日を入力するセルを設定します。 ※今回の例ではB3セルへ生年月日を表示します。
    セルの書式は日付であれば好みで設定してOKです。
  2. 次に年齢を表示するセルを決めて以下の通り入力します。(今回はC3セルへ年齢を表示します。)
    「=DATEDIF(B3,TODAY(),”Y”)」
    ※DATEDIF関数の書式は以下の通りとなります。
    「DATEDIF(開始日,終了日,単位)」
    単位説明
    "Y"期間内の満年数
    "M"期間内の満月数
    "D"期間内の日数
    "MD"開始日から終了日までの日数
    "YM"開始日から終了日までの月数
    "YD"開始日から終了日までの日数
  3. 基本的には上記手順だけでも年齢は表示出来ますが、より分かりやすくするために年齢が「○○歳」という感じに表示されるように設定します。
    単位を表示するためには年齢を表示するセルで右クリック⇒「セルの書式設定」から「ユーザ定義」の種類へ「0″歳”」と入力します。
  4. これで以下のように生年月日を入力すれば年齢が単位付で表示されます。