.*\s+from\s+(\w+\.)?(\w+).*select * from jyukutyo.emp where empno = 1; select * from emp where empno = 1; だとgroup(1)で「emp」が取れます。 スキーマ名を含める場合はこっち。 .*\s+from\s+(\w+(\.\w+)?).*元ネタはDBUnit Made Easy - O'Reilly ONJ…
TestNGではtestng.xml(ファイル名は任意)というXMLを使ってテストを実行するのですが、 XMLを使わずにプログラミングでテストを実行することもできます。 public static void main(String[] args) { TestNG testNG = new TestNG(); testNG.addListener(new D…
@SetupOperationでDbUnitのDatabaseOperationを指定できるわけですが、 テストメソッドごとに毎回指定するのは手間なので、 テストスイート全体でデフォルトを設定できるようにしました。 接続情報と同様に、 testng.xmlか@DbUnitNGアノテーションで指定する…
DbUnitNG Wiki - SourceForge.JP ブログに書いていたことはすべてWikiに転載してます!
DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで、データベースへの接続情報をアノテーションでも設定できるようにしました。 と同時に、スキーマも記述できるようにしました。 さらに、JDBCのURLから判断して、DbUnitのIDataTypeFactoryを自動…
僕もソフトウェアエンジニアが他業種のエンジニアとちょっと違うなあと思ってたことがまさにこれだった。 例えば車作ってる人が板金や旋盤の技術を高めるというのは、日常業務とほぼ繋がっている上に、そもそも「会社でしか作業できない」という制約があった…
意外にデータベースベンダーのサイトからすぐに検索できないもんなんだなあ。 なんかサンプルとかメモっぽい感じのやつしか見つからない。 その点MySQLのサイトはきちんとしてる印象。 jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property…
Suite > Testなので。 ISuiteListener ITestListener ISuiteListenerもITestListenerもonStart()とonFinish()があるので、 詳しく書くとこうなる。 ISuiteListener#onStart() ITestListener#onStart() ITestListener#onFinish() ISuiteListener#onFinish()
FEBE :: Add-ons for Firefox FEBEはFirefoxのエクステンションとかをバックアップするエクステンション。 バージョン6.0がリリースされて、正式にFirefox3に対応してます。 バックアップとってみたけど、ちゃんと動作しました。 Greasemonkeyのスクリプトも…
なんか最近思うエンジニアとして大切なこと。 仕事とプライベートに(厳密な)境界線を引かないこと 技術を楽しむこと 技術の勉強は業務時間内にやるべき!とかよい残業とは!みたいな話につながるけど、 厳密に境界線を引きたい人には(システム開発の)エンジ…
テストケースの追加と、バグを修正しました! DbUnitNG プロジェクト日本語トップページ - SourceForge.JP AssertionHelperクラスを使えばラクにアサートすることができます。 List<Dept> deptList = deptDao.listAllDept(); AssertionHelper.assertEqualsOnlyColu</dept>…
trunk/DbUnitNG/sampleとsampletestディレクトリ以下にあります。 sampleはiBatisを使ったデータベースアクセスアプリです。 なので、DbUnitNGの依存ライブラリに加えてiBatisのライブラリが必要です。 DBはMySQLを使っていますが、他のDBでも動くはずです。…
テストにおいては、正しく例外が発生するかもテストする必要がある。 JUnit3の時代は、僕の周りではそのテストの書き方を理解している人が少なかった印象がある。 JUnit3では例外発生テストはこのように書くものだった。 import junit.framework.TestCase; p…
タイトルのとおり、ELで${aName}と書いても、BeanのgetAName()は呼び出せない。 これ知ってるんだけど、なんで?けっこう長いこと疑問。何の仕様なんだろ。 Java Beansの仕様でこうなってるのかなあ。 (追記) ひがさんとkoichikさんに教えていただきました!…
クラスパスのルートに「log4testng.properties」を置く。 log4testng.propertiesはこんな風に設定する。 # log4testng will log its own behavior (generally used for debugging this package only). log4testng.debug=true # Specifies the root Loggers l…