2008-08-01から1ヶ月間の記事一覧
@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…
TestNG (pronounced "testing", but derived, one understands, from "Testing, the Next Generation") Next Generation Java Testing - JavaLobby Book Review TestNGと書いて「てすてぃんぐ」と読むようだ。 ちなみに、僕がよく使う発音の調べ方は、「XXX …
Livedoorクリップでライブラリをブクマしてくれてる人が! 1人だけど、超感激。
5000件をBeanのListで取得して、XMLの期待値と比較するパフォーマンステストをやってみました。 こういうのって一概に参考にならないことも多いと思うんですけど、感触だけでも伝えられたらって感じです。こんなテーブルに5000件入れます。 mysql> desc emp;…
DbUnitNGのバージョン0.1をリリースしました。 DbUnitのSetUpOperationとTearDownOperatonをアノテーション対応しました。 BeanのListをDbUnitのIDataSetに変換するBeanListConverterを実装しました。 DbUnitのAssertionに対するヘルパークラスAssertionHelp…
mysql> source ファイルのパスまたは $ /usr/local/mysql/bin/mysql -u ユーザー名 -pパスワード -f -vvv < ファイルのパス
$("#テキストエリアのID").val() サンプル <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="lib/jquery/jquery.js"> </script> <script type="text/javascript"> $(function(){ $("#trigger").click(function(){ var text = $("#target").val(); alert(text…</meta></head></html>
DbUnit + TestNGのライブラリでは、@SetUpOperationなどのアノテーションを使えるわけですが、これはTestNGでリスナーインタフェースが用意されているおかげです。 TestNGでは、リスナーインタフェースが4つ用意されています。 リスナー 説明 IMethodInterce…
ライブラリDbUnitNGで、 ネストしたBeanをDbUnitのデータセットに変換できるように対応しました。 ネストしたBeanとは次のようなことを意味してます。 あるBeanのプロパティとして、 別のBeanを持つ 別のBeanをListで持つ 別のBeanを配列で持つ テストコード…
BeanのListからDataSetへ変換する部分について、テストコードを記述しました。 TestNGでテストしてます。 Beanがネストしない(Beanが他のBeanをプロパティとして持たない)限り、 リストをデータセットに変換できるようになってます。 # いくつかバグを修正し…
DbUnitで期待値をXMLやExcelに記述すると思うけど、 日付の書式は基本的にDate.valueOf()やTimestamp.valueOf()で有効な書式を記述する。 こんな感じ。 <dataset> <datebean javaUtilDate="2008-08-08" javaSqlDate="2008-08-08 15:20:11" timestamp="2008-08-08 15:20:11.000" /> </dataset> 試したけど、java.util.Dateでもjava.sql.Date…
DbUnitのFlatXmlDataSetはXMLからDataSetを生成するときに利用する。 だけど1点注意。 FlatXmlDataSetは1つ目の要素の属性をテーブルのカラムとする。 だから、こういうのはダメだ。 <dataset> <simplebean i="0" /> <simplebean string="" i="1" /> <simplebean string="a" i="-1" /> </dataset> カラムstringをnullにしたいがために、1つめの要素にstring要素を記…
AutoPagerizeのスクリプトにサイト情報を追加するだけ。JSON形式で。 { url: '対象とするURL。正規表現で。', nextLink: '次のページへのリンク。XPathで(例://table[@class="bodyline"]/tbody/tr/td/table/tbody/tr/td/table/tbody/tr/td[@class="nav"]/d…
たとえば数値の引数を2つとって、それを足し算したりかけ算したりするメソッドをテストするとして。 public int add(int a, int b) public int multiple(int a, int b) みたいな。 こういうメソッドをテストする場合、引数のバリエーションを考えてテストす…
シリーズ第3弾! 君は合成メソッドを知っているか!(Java) - Fight the Future じゅくのblog 君は合成フィールドを知っているか!(Java) - Fight the Future じゅくのblog 合成コンストラクタ。つまりコンパイラが自動的に作成するコンストラクタ。 やはりイ…
DbUnitNG Wiki - SourceForge.JP 今までBlogに書いていた、ライブラリの使い方をSourceForgeのWikiにまとめました。 よかったら見てみてください!
過去のエントリでBeanのListとDbUnitのDataSetの比較をなんとかしたいと思ったわけだけど。 DbUnitの弱点はBeanのListとDataSetを比較できないこと - Fight the Future じゅくのblog BeanのListとDbUnitのDataSetを比較する方法を考える - Fight the Future …
君は合成メソッドを知っているか!(Java)に続いて第2弾。 前回はMethodクラスのisSynthetic()を調べたわけだけど、 そもそもisSynthetic()はMethodクラスのインタフェースであるMemberに定義されている。 Memberインタフェースを実装するクラスとして、Metho…