java.sql.TimeStamp.valueOfの罠 2
[java.sql.TimeStamp(http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/sql/Timestamp.html)のvalueOfメソッドはyyyy-mm-dd hh:mm:ss.fffffffffという形式の文字列を引数に取るはずなのですが、yyyy-m-d hh:mm:ssという形式でもEclipseプラグインから実行したmaven testとJUnitのテストランナーで単体実行した場合は通ってしまいます。
ただし、mvnコマンドで「mvn test」を実行すると何も言わずにErrorになってしまい、かなりハマりました。
ただ、実はミニマムセットで試したわけではないので、別の部分の影響があるのかも知れませんが、valueOfで落ちるのは確かです。
バージョンとか
- apache maven 2.0.9
- JUnit 3.8.1
- Maven Integration for Eclipse 0.0.12
そういうのはJVMだったり、テストを実行しているOS環境だったりが問題である可能性が高いよ。Localeも怪しい。
テスト対象の項目にそんな精度が求められているかどうか、も検討してみるといいんじゃないかなー。
なるほどー。ただ、同一のマシンで結果が変わるので、あまり納得できなかったります。 確かに、mvnはeclipseの外部プログラム起動か、コマンドプロンプトから呼び出しているので、若干環境が違う可能性はありますね。
精度というよりは、文字列のフォーマットが厳密じゃなくても通ってしまう環境があるということが気になってたりします。