HeTeMuLu Creatorでの文字コード設定方法をメモしておきます。
デフォルトの文字コードはUTF-8に設定しておく事をお勧めします。
管理者 のすべての投稿
HeTeMuLu Creator:終了するとRuntime error 216が発生する
サクラエディタで文字コードを設定する方法
HeTeMuLu Creator:「ブラウザでプレビュー」が選択出来ない原因
HeTeMuLu Creator:インストール手順
HTMLエディタ「HeTeMuLu Creator(へてむるクリエイタ~)」のインストール手順をご紹介しておきます。
基本的にインストーラをダウンロードして手順通り勧めれば簡単にインストール出来ます。
HeTeMuLu Creatorの特徴
- 無料で高機能なHTMLエディタを利用出来ます。
- タブで複数のファイルを編集できます。
- キーマクロも利用可能です。
- スタイル シートに対応しています。
- レジストリを汚さない。
- 画像のイメージビューアも搭載。
- 強力なタグ入力補完機能を搭載。
- リンクや画像の相対パスを取得できます。
ダウンロード先
-
下記サイトへアクセスし、インストーラ版をクリックしてダウンロードします。
HeTeMuLu Creator公式サイト
HeTeMuLu Creatorのインストール手順
- ダウンロードした「hcre110a.exe」をダブルクリックしてインストーラを起動します。
- セットアップウィザードが起動したら「次へ」ボタンを選択します。
- 重要な情報画面が表示されるので「次へ」ボタンを選択します。
- インストール先の指定画面が表示されるのでインストール先を指定して「次へ」ボタンを選択します。
- プログラムグループを指定して「次へ」ボタンを選択します。基本的にデフォルト値のままでOKです。
- 「デスクトップ用のショットカット用アイコン」と「クイック起動用のショットカット用アイコン」の作成有無を選択して「次へ」ボタンを選択します。
- インストールが完了すると重要な情報画面が表示されるので読んだら「次へ」ボタンを選択します。
- セットアップが完了したら「完了」ボタンを選択してインストール完了となります。
JUnit:privateメソッドを実行(テスト)する方法
JUnitでテストする時にprivateメソッドをテストする方法をご紹介します。
privateメソッドをテストするにはリフレクション「java.lang.reflect.Method」を使用することで実行可能となります。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class SampleClass1{ /** サンプルフィールド */ private String field = "hoge"; /** * <p>[概 要] サンプルメソッド</p> * <p>[詳 細] </p> * <p>[備 考] </p> */ private String sampleMethod(String str){ return str + "test"; } } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
@Test public void testSampleMethod() { // 準備 SampleClass1 sampleClass1 = new SampleClass1(); String result = ""; // 期待値 String expected = "hogetest"; // 実行 try { Method sampleMethod = SampleClass1.class.getDeclaredMethod("sampleMethod", String.class); // privateメソッドにアクセス可能とする sampleMethod.setAccessible(true); result = (String)sampleMethod.invoke(sampleClass1, "hoge"); } catch (SecurityException e) { // 普通のプログラムでは発生しない、ほとんど無視していい fail(e.getMessage()); } catch (NoSuchMethodException e) { // メソッド名・引数の型が一致しない場合に発生 fail(e.getMessage()); } catch (IllegalArgumentException e) { // 実行対象の引数の型/引数の数があってれば発生しない。NoSuchMethodExceptionの場合と同じく、1度でも通れば基本的に例外処理はいらない fail(e.getMessage()); } catch (IllegalAccessException e) { // 対象メソッドのアクセス制限(private/default package/protected)によりアクセス不可の場合に発生 fail(e.getMessage()); } catch (InvocationTargetException e) { // 対象のメソッドの処理中に発生した例外。e.getCause()で実際にメソッド内で発生した例外を取得できる。 fail(e.getMessage()); } // 検証 assertEquals("戻り値が一致していません", expected, result); } |
JUnit:private変数を取得・更新する方法
JUnitでテストする時にprivateなメンバ変数を取得・更新したい場合の方法をご紹介します。
今回はAPI「JMockit」の「Deencapsulation」クラスを使用してカプセル化された変数を参照・更新する方法です。
JMokitのダウンロード
-
以下サイトへアクセスしてダウンロードした「jmockit.jar」ファイルをクラスパスへ追加します。
クラスパスへ追加する際、JUnitより先に読み込む必要があるのでJUnitより上位へ配置します。
JMokitのダウンロード
JMokitのJavadoc
Javaソース
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public class SampleClass1{ /** サンプルフィールド */ private String field = "hoge"; /** * <p>[概 要] サンプルメソッド</p> * <p>[詳 細] </p> * <p>[備 考] </p> */ private String sampleMethod(String str){ return "test"; } } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
import static org.junit.Assert.*; import mockit.Deencapsulation; import org.junit.Test; public class SampleClass1Test { @Test public void testSampleField1() { // 準備 SampleClass1 sampleClass1 = new SampleClass1(); // 期待値 String result = "hoge"; // 実行(privateインスタンス変数の値を取得) String expected = Deencapsulation.getField(sampleClass1, "field"); // 検証 assertEquals("サンプルフィールドの値が一致していません", expected, result); } @Test public void testSampleField2() { // 準備 SampleClass1 sampleClass1 = new SampleClass1(); // 期待値 String result = "hogehoge"; // 実行(privateインスタンス変数の値を変更) Deencapsulation.setField(sampleClass1, "field", result); // 検証 String expected = Deencapsulation.getField(sampleClass1, "field"); assertEquals("サンプルフィールドの値が一致していません", expected, result); } } |
djUnitでのプライベートコンストラクタのテスト方法
javaではUtilクラスなどのコンストラクタは無駄なインスタンス化を抑制するためにコンストラクタの修飾子をprivateにする事がよくあります。ただdjUnitで試験する場合にはコンストラクタを呼び出したくても修飾子がprivateになっていてはインスタンス化が出来ずに呼び出せないのでカバレッジを100%に出来ません。そういう場合にプライベートコンストラクタをテストする方法についてメモしておきます。
Javaソース
1 2 3 4 5 6 7 8 9 10 11 |
public class UtilSample1{ /** * <p>[概 要] コンストラクタ</p> * <p>[詳 細] </p> * <p>[備 考] </p> */ private UtilSample1() { // 処理なし } } |
JUnitサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
import static org.hamcrest.CoreMatchers.*; import static org.junit.Assert.*; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import org.junit.Test; public class UtilSample1Test { @Test public void testConstructor() { try { // 準備 Class<?> utilSample1 = Class.forName("UtilSample1"); Constructor<?>[] constructor = utilSample1.getDeclaredConstructors(); constructor[0].setAccessible(true); // 実行 Object object = constructor[0].newInstance(); // 検証 assertNotNull("オブジェクトがありません。",object); assertThat(object, instanceOf(UtilSample1.class)); } catch (ClassNotFoundException e) { // 指定されたクラスが存在しない場合 fail(e.getMessage()); } catch (IllegalArgumentException e) { // 不正な引数、または不適切な引数をメソッドに渡した場合 fail(e.getMessage()); } catch (InstantiationException e) { // インスタンスを生成できない場合 fail(e.getMessage()); } catch (IllegalAccessException e) { // 配列以外のインスタンス作成、フィールドの設定または取得、メソッドの呼び出しを試みた場合 fail(e.getMessage()); } catch (InvocationTargetException e) { // 呼び出されるメソッドまたはコンストラクタがスローする例外をラップする、チェック済み例外 fail(e.getMessage()); } } } |
djUnitを実行してクラス名の行が未実行になる
Oracle:リカバリとリストアの違い
Oracleデータベースのリカバリとリストアの概念が少し理解しずらかったので整理しておこうと思います。
基本的にはパソコンのOSなどにおけるリカバリ(復旧)/リストア(復元)と言葉的な概念は同じですが、実作業は異なるものだと別物と覚えたほうが良さそうです。
リストアとは
- 一般的にパソコンのリストアといえばバックアップデータを用いてOSなどのデータを元の状態に戻す(復元)することを指します。
- Oracleデータベースのリストアとは、バックアップ媒体から元の場所もしくは新しい場所へデータベースを構成する物理ファイルをコピーして復元することを指します。
リカバリとは
- 一般的にパソコンのリカバリといえばパソコンにインストールされているOSを出荷時の状態に戻す(復旧する)作業のことをいいます。
- Oracleデータベースのリカバリとは、REDOログファイル(バックアップ取得~現在までのトランザクションの変更情報が保存されています)を使用してバックアップ後に作成されたデータベースへ変更情報を反映してデータを復旧することを指します。