2013年11月16日土曜日

httpclient 4.2.1でのマルチスレッドによるアクセス

最新の4.3.1だとやり方が違います。

4.2.1の場合。
クローズする前に他のアクセスをする場合は必須。

公式参考ファイル


オンラインドキュメント各種

Apache HttpComponents
http://hc.apache.org/httpcomponents-client-4.2.x/index.html

CalendarからDateに変換して文字列整形

参考

gitのコミットメッセージで#を使いたい

gitでコミットの際にviなどから先頭に#をつけて記述を行うとコメントとして認識されるわけだが、
Issueと結びつけるために先頭で#を使いたい場合、どうすればコメンと扱いにされなくなるのか…?

git commit -m "#1 メッセージ"
とやれば回避できるが…。

複数行のコメントをちゃんと書けということでしょうかね。

Linux間のファイル送信

scpコマンドを使う。
CUIの最小構成でも入っているのでどこでも使える。
ファイルの送信中は状況が表示される。

scp 送信ファイル 送信先アカウント@送信先IP:送信先ファイル名

ディレクトリを送るときは-r指定で。

2013年6月16日日曜日

MySQLでCSVファイルからのデータインポート

参考

LOAD DATA INFILE 'ファイル名'
    INTO TABLE テーブル名
    FIELDS TERMINATED BY ','
    (@CSVの1行目, @CSVの2行目, ...)
    SET DBのカラム1=@CSVの1行目, DBのカラム2=@CSVの2行目,  ...;

SETでデータの並び順を変えたり、日付+時間を結合してDateTimeを作成したり可能。

その時の文字列結合にはCONCATを使う。
CONCAT(文字列1, 文字列2, ...)

SPACE(n)でn個分のスペースを表せる。

2013年5月18日土曜日

Junit実践入門のまとめ

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)



・assert that actual is expected(実測値が期待値であると表明する)

・例外
    テストメソッドの前に以下を記述してから、例外が起きるメソッドを実行する。
    @Test(expected = 例外.class)
・カスタムMatcher
    ・BaseMatcherクラスのサブクラスとして定義
    ・matchesメソッド
        値の比較検証
            actual(実測値)を受け取るようにする。
            期待通りの動きをしている場合はtrue、そうでない場合はfalseを返す。
    ・describeメソッド
        比較が失敗した場合に通知する情報
        Descriptionオブジェクトを受け取り、
        この中に検証失敗の情報を入れる。
            java.lang.AssertionError:
                Expected: is Descriptionオブジェクト中身
                     got: 実測値のtoString
            appendValueメソッド
                出力にダブルクォーテーションがつく
            appendTextメソッド
                出力にダブルクォーテーションがつかない
    ・コンストラクタ
        expected(期待値)を受け取るようにする。
・テストのコンテキスト(テストの構造化)
        ・共通の初期化処
        ・共通の状態
       
        ●例
            @RunWith(Enclosed.class)
            public class クラス名Test{
                public static class ○○○○{
                    ~ テスト処理 ~
                }
                public static class □□□□{
                    ~ テスト処理 ~
                }
            }

・パラメータ化
    ・テストケースを少なくし、品質も良い状態に保つには、
      すべて満たしている条件と1つだけ満たしていない条件でテストを行えばよい。
    ●@Theory
        パラメータ化テストでは@Testの代わりにこれを使う。
    ●@DataPoints
        パラメータ化テストのパラメータ定義を行う。
   
    ●複数パラメータ化テスト
        public class クラス名Test{
            @DataPoints
            public static Fixture[] params = {
                new Fixture(1, 2, 3);
                new Fixture(3, 4, 7);
                new Fixture(5, 6, 11);
            };
           
            @Theory
            puvli void add(Fixture p) throws Exception{
                ~ pがパラメータ ~
            }
           
            static class Fixture{
                int x;
                int y;
                int expected;
                Fixture(int x, int y, int expected){
                    this.x = x;
                    this.y = y;
                    this.expected = expected;
                }
            }
        }
        ●外部リソースを使ってパラメータを定義するのが便利!
            ~未記載~
    ●assumeTrue(boolean flag)
        flagがtrueの場合のみその後の検証を行う。
        falseの場合はAssumptionViolatedExceptionが送出され、テストが成功となる。
    ●どのパラメータで失敗したかメッセージが出ないため、
      assertThatの第1引数に失敗時のメッセージを記述すること。
・TDD(テスト駆動開発)
    ●開発工程
      以下を繰り返す
        ・設計する
        ・テストコードを書く
        ・プロダクションコードを書く
        ・リファクタリングする