2011/01/29

Tomcatアプリケーションのテストコードを書く

Excelに引数の組み合わせ表を書いて1つずつ試していったのは昔の話。テスティングフレームワークを使って、こういったことはプログラムで処理するのが普通の時代。

そんなご時世に、Tomcat+Java+いずれかのDB という、ありがちな構成のサーバサイドでテスティングフレームワークを使うときのメモ。

問題になること

  • DBの接続情報はTomcatのリソースとして定義したものを使用している。どうやってDBアクセスモジュールのテストをすればよい?
  • DBにアクセスする部分のテストって、テストデータを用意したりしないといけないから、面倒。テストをバッチで繰り返し実行するとかなると、もっとたいへんそう。
  • Webブラウザでアクセスしたような形でテストするには、どうすればよいのか?
  • 処理結果をhtmlやxmlで返すのだが、どうチェックすればよいのか?

Code Barn Libraries And FrameworksのJUnit JNDI DataSource helper packageを使うと、Tomcatを動かさなくてもJNDIを使ったコードを動かせる。テスト用に別DBを用意して、上記packageの定義ファイルでテスト用DBを差すようにしておくとよい。

テスティングフレームワークでJunitTestNgがあるように、DBのテスティングフレームワークとしてDbUnitDbUnitNGがある。これらを使えば、テストデータの投入やDBのバックアップもOK。

次。do_Get()やdo_Post()を呼び出すようなテストを書けば、ブラウザでアクセスしたあとの処理をテストできる。 httpで送られる引数はどうするか?jmockitといったモックオブジェクトを使って、テスト対象のメソッドから呼び出されたときの値をセットしておく。また、HttpServletRequestWrapperやHttpServletResponseWrapperを使うと便利。

最後に、htmlやxmlのチェックにはHtmlUnitを使う。HttpUnitとどちらがいいのか、正直迷うのだが。

詳しい話は気が向いたら。



2011/01/18

Mac mini Dual Display化

メモリを増設したらサクサク動く。調子に乗って、Dual Displayにする。
余っているのはMini Display Port。モニタのデジタル入力端子が余っているので、PLANEX Mini Displayport ->DVI端子変換アダプタ (MacBook MacBook Pro MacBook Air) PL-MDPDV01で変換する。mac miniが動いているまま挿したけど、問題なく右側のディスプレイとして設定された。
システム環境設定→ディスプレイ の「調整」を選んで、左側に設定。快適。

キーボードが認識されなくなったWindowsマシン、どうしよう?せっかくCore 2 Quad入れたのに。




2011/01/16

Mac miniのメモリ増設

メモリが足りていない感じだったので、Mac Miniにメモリを増設した。8G。

[HYNIX ORIGINAL] SODIMM DDR3 PC3-8500 4GB (1066)

[HYNIX ORIGINAL] SODIMM DDR3 PC3-8500 4GB (1066)

価格:4,980円(税込、送料別)

調べてみると、相性がシビアらしい。普通はスペックが上のメモリで代用するのだが、安全策でスペックをそろえる。
工具。100円ショップでスクレーパーを求めるのが定石らしいけど、面倒なのでアマゾンでポチ。頻繁に使うものではないけど、外れだと作業に差し障るので、チョイスが難しい。


スクレーバー
スクレーバー posted by (C)hiro
隙間に差し込む
隙間に差し込む posted by (C)hiro
外れた
外れた posted by (C)hiro
これを摘む
これを摘む posted by (C)hiro

作業は 新型mac mini分解 (Early 2009) バラし&メモリ増設 [ BCCKS ]を見ながら。いらなくなったテレカを2枚用意しておこう。

購入したスクレーパーをMac miniと比較。このくらいの刃の長さでいいみたい。もうちょっと薄い刃だとやりやすいけど、怪我するよね。

隙間にスクレーパーの刃を入れるといっても、隙間がないし、無理くり突っ込んだら傷になるし。というわけで、テレカの出番。テレカを2枚隙間にさして、テレカの間にスクレーパーを突っ込む。だが、そもそもテレカを2枚さすのが大変。ぴったり隙間なくはまっている。なんとか差し込んで、てこの原理を利用すると少しだけ外れる。同じように反対面もやるんだけど、ますます隙間がなくなっているから大変。

バラせばパーツをぽちぽちはずしていくだけ。珍しいとめ方もあるけど、上記ページを見ながら進めれば問題なし。

メモリを交換したら、元通りにパーツをつけて、ふたを閉める前に動作確認。memtest86+を流して、メモリにエラーがないことも確認。

で、元通りにして確認したら、bluetoothが動かなくなっていた。めんどうなので、Let's noteにさしていたアダプタをさして、代用。




2011/01/01

謹賀新年




2010/12/30

ケースファンはラバーブッシュで固定する

CPUを交換するついでに、ケースファンを取り付けることにした。GELID Silent9 92mm ハイドロダイナミックベアリング採用 静音仕様FAN普及モデル GELID Silent9 取り付けの部材として、ねじではなく、ゴム製のピンが入っていた。
ゴムブッシュ(ラバーブッシュ)というらしい。取り付け方は、 Ainex | MA-023A が参考になる。が、ちょっとわかりにくい。左記の写真だと、左側にFAN、右側にケースが来る。ひたすら引っ張って伸ばして、出っ張りをくぐらす必要がある。ある程度引っ張ったところで傾け、出っ張りの端っこを少しずつ穴に押し込んでいくようにすると、とめやすい。


2010/12/26

Bye Bye BX407A4

♪ドナドナド~ナ♪。オンキヨー BX407A4

小さいし、これからの季節はコートのポケットに入れておけるので、結構使える!と思ったけど、 遅くて話にならない。ファイルシステムをNTFSにしてしまったので、余計に遅くなったのかもしれないけど、いつもディスクのアクセスランプがついている感じ。作りが甘くて、隣の電源ランプが漏れてくるというわけではなく。

とむむの日々○○ ONKYO BX(mbook m2) リカバリUSBメモリの作り方に従って、リカバリUSBを作成。書いてある手順の通りでいいんだけど、必要なファイルのリンクが404なのでググリ直したり、画面遷移を補完したり。Windowsの管理をやり慣れていないと、どのメニューからたどればいいのかわからないかも。

リカバリした状態でソフマップの査定に出したら、「リカバリメニューが出ないので、半額」と言われたので、引き取ってお昼を食べながらセットアップ。「これからWindowsのセットアップをしましょう」という状態であれば、リカバリしている途中なんだから、メニューにリカバリという項目がなくても当然な気がするが…。
どういう確認をしたのか聞いたら、取説にあるリカバリメニューが出るかどうかをやってみたんだそうだ。セットアップは終了させずに。

セットアップを終了させて、メニューが出ることを確認してから、再度持ち込む。最初の査定のときの結果のコピー(減額の理由として、リカバリメニューが出ないと書いてある)を出して、メニューが出ることを確認してもらい、当初の査定金額で引き取ってもらう。なんか、時間を無駄にしたけど、大損せずに済んだ。Galaxy Sの費用に当てることにして、しばらくパーツ類はソフマップでポイントで買うことにする。


ついでなので、Galaxy S用のカバーを探す。ソフマップ新宿にはなさそうなので、ヨドバシで。iDはポイント3倍とか言うキャンペーンをやっていたので、支払いはiDですます。これ、ケース側にストラップを付ける場所がないのが難点。別のメーカのカバーではあったのだが、蓋をマグネットでとめる形式ではなかったので、やめ。




2010/12/25

Galaxy S 購入

買ってしまいました、Galaxy S

HTC Ariaと迷ったけど、ハードウェアスペック重要ということで、決着。イーモバイルが地下鉄の駅間でどのくらい繋がるかがわからないので、踏み切れなかったということもある。駅であればNTT ComのWifiサービスを使えばいいので。

当然、店頭にある状態ではなかったので、予約手続き。入荷日に会社帰りによって機種変の手続き。iモード契約を残しつつ、SPモードとパケ放題ダブルを追加。
SPモードは使う気がないけど、申し込むと手数料が割引になるのと、しばらくはキャンペーンで無料なので。
パケ放題ダブルは保険で。

BX407A4はリカバリして、使っていたSDカードをGalaxy Sに装着。ついでにSIMもつけて、SIMチェックのあるSamsung Appsを1回動かしておく。

アプリはいろいろあるので、いろいろ試しながら。



2010/12/05

京の鴨すき

京の鴨すき
京の鴨すき posted by (C)hiro

寒くなると鍋が多くなるけど、これはめったにお目にかかれない鍋。




RESTful Webサービス

久しぶりに読み直し。専用ページ/アプリ用の、非公開APIについては、RESTのルールに従わなくてもいいかなぁと。APIの目的が若干違うからね。セキュリティ要件とか変わってくるし。




2010/11/28

Effective Java

Javaでプログラムを書くので、購入。Cの癖が抜けていないなぁとか、今度実装するときにはそうしようとか、参考になることが多い。
Scalaもおもしろそうだけど、もうちょっと触ってからかな?




2010/11/25

IE Tab Plusがヤバイ

FirefoxでIE Onlyなページを見るために IE Tab Plusを入れていたのだが、これ、アドウェア入り。即刻削除すべし!IE Tab Plus 1.95 にはアドウェアが含まれているようです。ご注意を。によると、バージョンアップすればよいようだけど、他のアドオンを使ったほうがよさそう。



2010/11/21

本日のお買い物

楽天booksでSoftware Design。



2010/11/03

達人プログラマー


達人プログラマー。どちらもおススメと言われるが、上のほう。今回のプロジェクトでは、ユニットテストを自動化して、頻発するであろうDBのテーブル構造の変更に対応して行こうというのが個人的な目標。なので、第2部のJUnitによるユニットテストを重点的に。実際には、DbUnitNG プロジェクト日本語トップページ - SourceForge.JPを使ってDAOのテストを行うつもり。ロジックはTestNGで。表示関係はHTML/XMLになるので、また別のテストフレームワークを探そう。




2010/10/23

楽天Booksってちょっと遅い


本を買うとき、Amazon楽天Booksを使うのだが、楽天は配達されるまで時間がかかる印象。

毎月買っているSoftware Designについて言えば、

  • Amazonだと予約が出来て、当日配達。楽天だと、発売日当日になって注文できるようになって、配達されるのは2,3日後(予約する方法がある?)。
  • Amazonだと、校友会の割引の対象にならない。楽天だと、各種キャンペーンを利用すればポイントアップ。ただし、注文日にキャンペーンが実施されているとは限らない。
  • 楽天だと、ポイントサイトを経由することで別途ポイントを貯めることができるが、Amazonは貯められるポイントサイトが利用している範囲ではない。
という状況。総集編はAmazonで、月刊は楽天Booksで、というのがいいのか。



2010/10/10

Windows7導入

Windows 7 Ultimate(J)アップグレード版

Windows 7 Ultimate(J)アップグレード版

価格:21,668円(税込、送料別)

Let's note CF-R7で、XPにダウングレードして使ってきたのだが、最近、ログオンしてから操作ができるようになるまで、1時間くらいかかるようになった。これでは使い物にならないので 再インストールと思ったが、再インストールするならとWindows7にすることにした。

とはいうものの、今使っている環境はなるべく残したい。Windows7用Windows転送ツールを使ってみた。


  • Windows XP上でWindows7用Windows転送ツールを使い、全ユーザーの情報を外付けディスクにコピー。
  • XPのリカバリディスクを使って、ディスクを初期状態に戻す。
  • Vistaのリカバリディスクを使って、ディスクを初期状態に戻す。
  • Vistaにログオンし、SP1にupdateする。
  • Windows7に必要なドライバの準備や、互換性のないソフトのアンインストールを行う。
  • Vista上でWindows7へのアップグレードを行う。
  • ドライバをWindows7向けに入れ替える。
  • Windows7上でWindows転送ツールを使い、外付けディスクからユーザー情報を書き戻す。
  • Windows転送ツールはなかなか優秀。インストーラ形式になっていない、「プログラムの追加と削除」にリストされないようなプログラムもコピーしてくれるし、Windows7上で「Windows転送ツールレポート」を見ると、以前使っていたのにインストールされていないプログラムも表示される。

    Windows7は、文字がきれいになったかな?使い勝手はしばらく使ってみないとなんともいえないけど。



    2010/09/23

    Tomcatのメモリをmuninで監視

    マシンのメモリ使用状況ではなく、動かしているApache Tomcatというか、Java VMの状況を知りたいというニーズはあるはず。

    snmpでtomcat メモリを監視 (Linux編) - トラシスラボ 技術ブログ などJMXを使ってやる方法もあるけど、もっと簡単にMuninjstat__heap pluginを使うというのもありかと。

    CentOS 5.4だとOpenJDKになるので、SNMPはSun JDKと非互換で使えない。JMX使った口を作るのが正攻法だろうけど、jstat__heap pluginで Java のversion checkの部分をごまかしても動いている様子。



    2010/09/21

    本日のお買い物

    毎月買っているのはもうこれだけ。




    2010/09/19

    Chromium OSにパッケージを追加する

    最近のビルドの仕方はUsing cros_workon - The Chromium Projectsにあるのだが、自分が動かしてみようと思ったマシンのドライバが入っていないこともあるので、簡単な追加方法をメモ。

    Adding a New Package - The Chromium Projectsにあるように、

  • .../src/third_party/portage か .../src/third_party/chromiumos-overlay にパッケージ(ebuild)を置く。
  • .../src/third_party/chromiumos-overlay/chromeos-base/chromeos にパッケージの作成ルールを書き加える。
  • の手順に従う。

    ということで、Let's note CF-R7の無線LANドライバを加えてみた。パッケージiwl4965-ucodeは既にportage/net-wireless にあるので、 .../src/third_party/chromiumos-overlay/net-wireless にリンクを張る。ビルドされるように、.../src/third_party/chromiumos-overlay/chromeos-base/chromeos/chromeos-x.x.x.ebuild に、既にあるiwl6000-ucodeの行をコピーして、iwl4965と変更。後は手順どおりにbuildすればOK



    耳掛け式ヘッドフォン購入

    今まで使っていた耳掛け式のヘッドフォン(ソニー)が、断線して片方音が出なくなったので、購入。コードは収納できないとね。

    携帯やパソコンからbluetoothで飛ばして聞くので、音はあんまりこだわっても意味がない。bluetoothのアダプタは、持っていた奴を再利用。




    2010/09/17

    今更ながらIrDA

    USB接続IrDA赤外線通信アダプター

    USB接続IrDA赤外線通信アダプター

    価格:1,320円(税込、送料別)

    ThinkPadには普通についていた気がするIrDA。Let's noteやBX407A4には付いていないし、 そもそも使い道ないよなぁと思っていた。が、携帯の画像転送って、IrDAが多い。というか、 bluetoothで転送できない。ケーブルつないでmass strageとしてアクセスしていたけど、 ケーブルコネクタのカバーがバカになってきた。また、microSDカードを抜くのも面倒になってきた。

    IrDAで転送すれば手間要らず!というわけで、ポチッと。写真はむき出しだけど、ちゃんとケースに入ってきた。Windows XPで使う分には、ドライバCDは不要。標準のドライバで認識される。

    ファイルの転送もそのままでOK。ただ赤外線なので、うまく向きをあわせないと画像転送できない。 その点だけ気をつければ、お手軽。で、転送された画像はvntファイルになるので、取り出すツールが必要になるのだが、それは次回にでも。